git学习

公司项目涉及到git的使用,所以抽时间看了下git相关命令,其实也有不足和错误,后期实践过程中慢慢修改:

git提交的注意点:

 
1,不同类别的修改 (如:Bug修复和功能添加) 要尽量分开提交,以方便以后从历史记录里查找特定的修改内容。
 

2,查看其他人提交的修改内容或自己的历史记录的时候,提交信息是需要用到的重要资料。所以请用心填写修改内容的提交信息,以方便别人理解。

以下是Git的标准注解:

第1行:提交修改内容的摘要
第2行:空行
第3行以后:修改的理由

请以这种格式填写提交信息。

 

工作树,索引

目录被称为工作树

工作树和索引

 

git push 将代码提交到远程服务器

推送

git clone 拉取远程服务器端代码;

git pull 更新远程git上的代码到本地,相当于更新代码;

 

合并修改记录:

合并 例1

マージ 例2

手动解决合并过程中出现的冲突问题:

冲突发生的例子

上方为本地代码

=================

远程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可以暂时保存工作树和索引里还没提交的修改内容,您可以事后再取出暂存的修改,应用到原先的分支或其他的分支上。

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/

原文地址:https://www.cnblogs.com/androidsuperman/p/bb5fc8aba2bf87eb38204f19ecc5be8f.html