git学习
git提交的注意点:
2,查看其他人提交的修改内容或自己的历史记录的时候,提交信息是需要用到的重要资料。所以请用心填写修改内容的提交信息,以方便别人理解。
以下是Git的标准注解:
第1行:提交修改内容的摘要 第2行:空行 第3行以后:修改的理由
请以这种格式填写提交信息。
工作树,索引
目录被称为工作树
git push 将代码提交到远程服务器
git clone 拉取远程服务器端代码;
git pull 更新远程git上的代码到本地,相当于更新代码;
合并修改记录:
手动解决合并过程中出现的冲突问题:
上方为本地代码
=================
远程git上的代码
处理冲突:
git高级
分支的概念:
一般工作中分主分支和个人分支,通常通过fork来建立自己的分支,并在这个分支中进行修改操作,然后通过merge合并到主分支中去。
master分支即原始的root分支,为最初提交代码时,git创建的分支。
分支的运用:
merge分支和topic分支
Merge分支是为了可以随时发布release而创建的分支,它还能作为Topic分支的源分支使用。
Topic分支是为了开发新功能或修复Bug等任务而建立的分支。
蓝色和褐色部位为Topic分支。
分支的切换
HEAD指向的是现在使用中的分支的最后一次更新
提交时使用~(tilde)和^(caret)就可以指定某个提交的相对位置。最常用的就是相对于HEAD的位置。HEAD后面加上~(tilde)可以指定HEAD之前的提交记录。合并分支会有多个根节点,您可以用^(caret) 来指定使用哪个为根节点。
stash
还未提交的修改内容以及新添加的文件,留在索引区域或工作树的情况下切换到其他的分支时,修改内容会从原来的分支移动到目标分支。
但是如果在checkout的目标分支中相同的文件也有修改,checkout会失败的。这时要么先提交修改内容,要么用stash暂时保存修改内容后再checkout。
stash是临时保存文件修改内容的区域。stash可以暂时保存工作树和索引里还没提交的修改内容,您可以事后再取出暂存的修改,应用到原先的分支或其他的分支上。
分支的合并:
merge:
建立分支:
branch:
branchname-->分支名称
$ git branch <branchname>
不指定参数直接执行branch命令的话,可以显示分支列表:
前面有*的就是现在的分支。
$ git branch issue1 * master
切换分支:
$ git checkout <branch>
切换到issue1分支:
$ git checkout issue1 Switched to branch 'issue1'
创建分支并切换分支:
$ git checkout -b <branch>
合并分支:
$ git merge <commit>
删除分支:
$ git branch -d <分支名称>
$ git branch -d issue1 Deleted branch issue1 (was b2b23c4).
并行操作:
创建issue2分支和issue3分支,并切换到issue2分支
$ git branch issue2 $ git branch issue3 $ git checkout issue2 Switched to branch 'issue2' $ git branch * issue2 issue3 master
添加标签:
$ git tag <标签名称>
显示标签列表:
$ git tag
显示包含标签资料的历史记录:
$ git log --decorate
添加标注标签
$ git tag -a <标签名称>
示标签的列表和注解:
$ git tag -n
删除标签:
$ git tag -d <要删除的标签>
改写提交:
git add sample.txt$
git commit --amend
取消提交:
$ git revert HEAD [master d47bb1d] Revert "添加pull的说明"
1 files changed, 1 insertions(+), 2 deletions(-)
删除master分支最近的提交:
$ git reset --hard HEAD~~ HEAD is now at 326fc9f 添加add的说明
参考学习于:http://backlogtool.com/git-guide/cn/