专注于快乐的事情

git命令

git分支管理

Git分支是轻量且高效的,为什么呢?答案是:传统的版本控制系统存储的数据是文件的变更,而Git则是存储一系列的文件快照(snapshot)。

vi .git/HEAD,其内保存了指向当前分支最新提交的指针。

该指针指向refs/heads/分支名文件,我们进入.git/refs/heads/目录,其下以分支名为文件名列出了所有分支。
如master

执行vi master:可以看到,其内存储的就是当前分支的最新一次提交对象ID。

命令

查看详情

git log --decorate

git log --graph

git log –graph –decorate

git log –pretty=oneline //显示简单信息

git log命令显示从最近到最远的提交日志

git status告诉你有文件被修改过,用git diff可以查看修改内容

git add 的各种区别

git add -A // 添加所有改动

git add * // 添加新建文件和修改,但是不包括删除

git add . // 添加新建文件和修改,但是不包括删除

git add -u // 添加修改和删除,但是不包括新建文件

###怎么回退

首先查看版本git log

git reset –hard HEAD^

在Git中,用HEAD表示当前版本,也就是最新的提交
上上一个版本就是HEAD^^

git reset –hard 3628164

恢复到新版本

Git提供了一个命令git reflog用来记录每一次命令

比较

git diff readme.txt

创建一个分支

我们创建一个分支work-a

git checkout -b work-a

等价于以下两条指令:

git branch 分支名
git checkout 分支名

提交

git add .
git commit -a -m “fix”

合并

先切换到master分支
git merge work-a
该指令告诉Git将指定分支合并到当前分支

指定–no-ff即声明进行非快速推进合并

rebase

删除分支

当分支合并入主干后,也许我们不再需要那个分支了,我们需要将其删除,使用指令:

git branch -d 分支名

远程分支

远程分支和本地分支基本理论概念还是相同的,区别是有些指令不同
git checkout -b test origin/develop
以上指令即从远程分支(远端主机origin上的develop分支)切出新的本地分支test分支。

当我们从一个远程分支切出(创建)一个本地分支时,这个分支就叫跟踪分支(tracking branch),而远程分支叫上游分支(upstream branch)。

当我们克隆一个远端仓库时,会默认创建一个跟踪分支master,其上游分支就是远端主机别名/master

手动建立追踪关系

git branch –set-upstream master origin/next
指定master分支追踪origin/next分支。

查看远程和分支

git branch -r

git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支
git branch查看本地分支

创建跟踪分支

创建跟踪分支指令如下:

git checkout -b 本地分支名 远端主机别名/远程分支名

git checkout -b ccc origin/work-a

本地分支设置其上游分支

需要为本地分支设置其上游分支,添加-u参数:

git branch -u 远端主机别名/远程分支名

如何参看当前分支对应的上游分支

git branch -vv

删除远程分支

对于不再需要的远程分支,是可以删除的:

git push origin –delete test

推送数据到远程分支

git push <远程主机名> <本地分支名> <远程分支名>
git push origin ccc master

git push <远程主机名> <本地分支>
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

git push -u origin master
-u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push

pull分支

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>

例如远程分支如下:
git branch -r
origin/HEAD -> origin/master
origin/ccc
origin/master
origin/work-a

git pull origin ccc:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin ccc

git pull origin
本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。

如果当前分支只有一个追踪分支,远程主机名都可以省略
git pull

远端主机

参看远端主机

git remote
git remote -v
使用-v选项,可以参看远程主机的网址

添加主机

git remote add <主机别名> <远端地址>
git remote add origin http://112.124.0.156:9258/klwork/test.git

查看特定主机信息

git remote show origin

参考

http://www.cnblogs.com/qianqiannian/p/6008140.html
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
http://blog.csdn.net/wh_19910525/article/details/7554489
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

评论系统未开启,无法评论!