目录
一、获取远程仓库
git clone git-URL -b branch-name
git clone [-b branch-name] root@192.168.83.186:/home/git/jescloud.git
如:git clone https://220.160.58.26:8992/JES/dcfile.git -b dev // 获取远程仓库的dev分支
// 下载到指定目录
git clone -b dev-branch root@192.168.83.186:/home/git/jescloud.git local-dir-name
二、代码提交
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改提交流程总结:
git status # 查看文件修改情况,确认修改是否无误
git add . # 递归将当前目录下的文件、目录添加 git 控制
git diff
git status # 查看文件修改情况,确认修改是否无误,如果有不需要提交的修改文件,可以通过git remove 进行移除(?)
git commit
git pull -p #将远端分支代码同步到本地 。 以及手动解决冲突
git push -f -u origin master (remove-branch-name) ## 推送到远端
在推送到远端前,需要将远端服务器版本(如果有多人在编辑提交该分支版本)同步到本地后在进行 push
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# git diff --cached # 用来查看index file 和仓库之间代码的区别。如果只是在 working tree 里做了修改,还没有报告给 index file,所以使用此命令显然会输出空信息。而如果省略--cached 选项的话,就是比较 working tree 和 index file 的区别
# git diff # 查看文件差别,后面可以跟2个文件,或2次提交id 等。
# git status # 获取整体改动的信息
看到提示信息“Changes not staged for commit“,就是说 git 发现你有已经修改了但还未 git add 的内容。
提示说“Changes to be committed”,那就是表明 git 发现了你已经 git add 但还未 git commit 的内容。
“Untracked files”,那么就是你增加了新文件或者在某个子目录下增加了新文件。
# git commit -a # 直接提交所有修改,省去了git add 和 git diff 、git commit 工序,但 git commit -a 无法将新增的文件或者文件夹添加进来,所以新增文件后需要先 git add . ,再 git commit 。
# git log 查看 提交log 信息,如果需要查看详细开发日志 可以跟上 -p 选项: git log -p
# git remote -v # 查看当前配置有哪些远程仓库。 可以查看 仓库的URL 。
三、创建、删除、合并分支
查看分支:
git branch -a # 查看所有分支, 前端有 * 标注的是当前分支。
git branch -a
创建分支
git branch dev # 创建名为 dev 的分支,不切换到新分支
git checkout -b dev # 创建名为 dev 的分支,并切换到新的dev分支上
将本地分支推送到远端:
git push 本地分支名 远程分支名 # 将新创建的本地分支推送到远端仓库
如:git push dev dev
删除本地分支:
git branch -d dev # -D 表示无论如何都删除分支
删除远程分支:
git push [远程名] :[分支名] # 如,git push origin :dev 删除远程 dev分支
或者
git push origin --delete dev # 删除远程 dev分支
切换分支
# git checkout debug-branch
在debug-branch 分支修改不会影响到 master-branch 。在分支上修改后,需要commit 才能(创建对应的快照)看出与主分支的区别。
合并分支
如将dev 分支合并到master分支,操作如下:
# git checkout master
# git merge dev
四、冲突解决
1)合并分支时,冲突解决
修改debug-branch 、master 分支中的文件,并都执行commit,使其冲突。
# git checkout master
## 查看冲突代码
## 修改冲突代码如下:
即,删除冲突的代码,保留需要保留的代码,并删除 <<<< 、========、>>>>>>>> 符号。
## 重新合并debug-branch分支到 master
# git merge debug-branch
## 删除分支
# git branch -d debug-branch ## -D 表示 ”无论如何都删分支“
五、打标签
对于里程碑式的代码提交,需要打tag
查看现有标签:
# git tag
# git tag -l 'v1.4.2.*' # 查看部分标签
# git tag -a v1.5 -m 'my signed 1.5 tag' # -a 指定标签名,可选。 -m 指定标签说明信息。
# git show v1.5 # 查看具体标签
# git tag -s v1.5 -m 'my signed 1.5 tag # 如果有私钥,可以用GPG来签署标签。
默认情况下, git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
# git push origin v1.5 # 将具体某个标签分享远端仓库
# git push origin --tags # 将所有标签分享到远端仓库
参考:《git 中文资料.pdf》