git

git

.git文件:用来跟踪管理版本库(repository)

stage(或者叫index)的暂存区

master主分支(自动创建)

HEAD指针

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

廖雪峰教程: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  

git从已有分支拉新分支开发

创建分支-及概念示意图

git branch <分支name>:带上分支名,即为创建@名称的分支。

git checkout <分支name>:带上分支名,即为切换至@分支。

git checkout –b <分支name>:命令加上-b参数表示创建并切换分支,相当于上述两种命令的结合。

查看所有分支

git branch:列出本地所有分支,同时会在当前分支前显示“*”号。

git branch -r:列出远端所有分支。

git branch -a:列出远端和本地所有分支。

开发过程中经常用到从master分支copy一个开发分支dev,下面我们就用命令行完成这个操作:

1. 切换到被copy的分支(master),并且从远端拉取最新版本

$git checkout master

$git pull

2. 从当前分支拉copy开发分支

$git checkout -b dev

Switched to a new branch 'dev'

3. 把新建的分支push到远端
$git push origin dev

4. 拉取远端分支
$git pull

There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream-to=origin/<branch> dev

经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步:
5. 关联

$git branch --set-upstream-to=origin/dev
6. 再次拉取 验证

$git pull

主副分支合并

git checkout master:切换回到master主分支,HEAD标识分支点切回master。

git merge <分支name>:指定分支合并至当前分支。

注: git branch:使用此命令查看当前所在分支。

注:返回信息会告知本次合并的模式,此次合并为“Fast-forward”模式,既“快进模式”。

说明:

一般情况下的分之合并,Git会自动使用“Fast Forward”模式合并,既快速合并分支,但快速合并分支后,若删除经过快速合并的分支,会丢失分支信息,因此可以禁用“Fast Forward”方式合并,这样Git就会在“merge”合并时生成一个新的commit序列,这样即可在分支历史上看到分支信息。

git merge --no-ff -m "merge with no-ff" dev:合并分支,将dev并入master,并禁用“Fast Forward”模式合并。

①.--no-ff:本次合并分支禁用“fast forward”快速合并,使用递归方式进行。

②.--no-ff –m:创建新的commit,加上-m,将commit描述写入log。

 工具:smartgit  分支合并

情景:存在两个分支:一个自己的开发分支,一个总框架分支,如下图红框中所示,我自己开发在hudfang-local分支上进行,我领导开发在Feature/demo分支上,他做了修改同步到到demo分支上,我作了修改commit到hudfang-local分支上。现在我要合并他新提交到Feature/demo分支上的代码到我的分支上。

合并方法

(1)commit我在hudfang-local上的所有修改

(2)在smartgit离切换到feature/demo branch,pull

(3)切换回hudfang_local branch(右键 check out)

(4)右键单击feature/demo branch,选择merge

(5)在弹出的对话框里选merge to working tree

(6)如果没有conflict,commit所有的更改即可。(选中所有更改 ,右键点击commit)

 查看分支合并情况

git log --graph --pretty=oneline --abbrev-commit:查看分支合并记录。

注:合并后无用的分支线即可删除。

git branch -d <分支name >:加-d和分支名将删除指定分支,-d=Deleted。

注:删除后使用git branch即可查看分支目录中是否已经删除指定分支。

原文地址:https://www.cnblogs.com/J-Cooper/p/7955136.html