您的位置:首页 > 编程语言 > Java开发

如何使用git管理你的java脚本(入门篇)

2017-06-24 00:00 197 查看
写这个文章的目的,纯粹是为了有个地方收藏我经常要用的命令而已。(年纪大了,记性不好了,好记忆不如烂笔头)

文中截图及介绍中的工程地址有可能不一致,因为文中地址大部分都已修改,遗漏的可能未修改,截图比较麻烦,就不重新截图了:

1.申请GitLab账号,获取项目的ssh地址

申请公司的Git账号,假设GitLab的地址:http://192.168.1.1:80

Java脚本工程的项目地址: (事先登录gitlab创建对应的工程,需要权限)

git@192.168.1.1:qa/Auto_Test.git

对应的http地址:
http://192.168.1.1/qa/Auto_Test.git
2.使用git命令的前提条件

2.1 安装工具Git-1.9.5-preview20150319.exe

去网上下载,安装完后,选中一个目录,点击右键可见:Git Bash

2.2 生成ssh key,打通Git Bash 与 GitLab(git仓库服务)
首先建一个本地仓库目录,例如:D:\05-git-test

选中该目录,点击右键,点击Git Bash

执行命令:ssh-keygen -t rsa -C 123456@qq.com

#将邮箱替换成自己的邮箱;一直回车即可;

#命令执行完会提示公钥和私钥文件产生的路径;

例如:C:\Users\Administrator.USER-20141014FO\.ssh

拷贝文件id_rsa.pub的内容到GitLab中,如下图中的key中:

测试ssh是否可正常连接:

执行命令:ssh git@192.168.1.1:qa/Auto_Test.git

3.向远程git项目,第一次提交eclipse工程代码
3.1 先将远程git仓库克隆到本地仓库(D:\05-git-test)中

在Git Bash 中,执行命令:git clone git@192.168.1.1:qa/Auto_Test.git

然后去查看本地仓库目录,如下图:

Ps:

1.可以在Git Bash的标题栏上,点击右键—编辑—粘贴 上述命令;

点击右键—编辑—标记 是复制的功能;

2.在Git Bash中执行命令就像Linux一样;

3.2 拷贝待提交的eclipse工程目录下的所有文件到D:\05-git-test\Auto_Test(即跟.git同一目录)

如下图:

3.3 提交本地仓库代码到git仓库

执行命令:

cdapi_test_tools

gitstatus #查看本地代码变更情况

gitadd . #将本地当前目录下的所有文件,添加到缓冲区中

gitcommit –m “first push script” #将缓冲区中的文件,提交到git本地的服务器中

# -m 添加代码提交时的注释

gitpush origin master #将git本地服务器的代码提交到远程仓库的master分支上

去GitLab上,查看代码是否提交到对应的项目下了:

4.从git远程仓库克隆已经存在的代码,做出修改后并重新提交
4.1 跟3.1一样执行克隆命令:

gitclone git@192.168.1.1:tests/Auto_Test.git

#注意选择该命令执行的目录

执行完命令,会在当前目录下生成Auto_Test目录,该目录中会出现.git文件;

#该目录下是有代码的,所以不用跟3.2一样操作;

4.2 打开eclipse,将从远程克隆下来的工程导入eclipse,如图:

注意:1.以maven工程的形式导入!!!



4.3 在eclipse中,增加或者修改java文件后,将修改提交到git远程仓库中

在Git Bash中,执行命令:

cd Auto_Test

gitstatus #查看本地代码变更情况

gitadd . #将本地当前目录下的所有文件,添加到缓冲区中

gitcommit –m “modify java script” #将缓冲区中的文件,提交到git本地的服务器中

# -m 添加代码提交时的注释

gitpull origin master

#每次提交修改内容到git仓库前,先拉取远程仓库中的最新代码,

看看他人的修改跟自己的修改是否有冲突

执行完该命令后,进入到eclipse中,查看对应的工程:

如果有冲突,eclipse会报错,如下图:

必须手动修改冲突的代码之后,才能再次提交,如图:

冲突代码修改好后,再次执行代码:

gitstatus #如有冲突,该命令的结果中会有提示

gitadd .

gitcommit –m “fix bug”

gitpull origin master #虽然冲突已解决,还是必须再拉一次代码

gitpush origin master #提交修改到git远程仓库中

注意:git status 检查出有冲突,千万不能跳过git pull,直接git push,很有可能覆盖别人的代码

4.4 在eclipse中,如若删除了一些文件或目录,将此修改提交到git远程仓库中
在Git Bash中,执行命令:

cd Auto_Test

gitstatus #可以检查出本地删除了哪些文件

gitrm logs/xiaokatest_

gitrm src/main/java/com/xiaoka/test/base/utils/TestEnvs.java

……

补充说明:如果有很多文件需要删除时,操作如下:

git add --all (或git rm -r –cached .)

删除操作慎重!

gitcommit –m “delete logs file and TestEnvs.java”

git pull origin master
gitpush origin master #没有冲突,pull之后就是push修改到git远程仓库

5.Q&A
5.1 如何将空目录提交到git仓库中

在空目录下,创建隐藏文件(文件名自定义)

在GitBash下:

cd空目录名

touch.gitkeep

补充:工程中出现空目录,提交代码的时候,可能会报错:

error:src refspec master does not match any.

5.2 部分目录不希望提交到git仓库,提交时如何忽略它们?
在java项目的根目录下,放一个.gitignore文件,增加以下配置:

/.settings/

/logs/

/target/

/test-output/

/.classpath

/.project

表示这些目录/文件不提交到git仓库;

说明:

1)logs是本地执行用例时log4j打印的日志,test-output是testng的输出日志,target是编译和执行时本地会自动生成的 。

2)/.settings/,/.classpath,/.project跟项目在本地编译环境有关,故不提交到git仓库;

如果从git仓库中迁出的项目需要进行编译:

方法:clean一下当前工程,会自动编译java文件,生成target目录中的文件;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: