GIT 命令学习: 分支与合并

GIT 命令学习: 分支与合并(1)


分支(branch)

用来列举、创建或者删除分支。

语法

git branch [--color[=<when>] | --no-color] [-r | -a]
    [--list] [-v [--abbrev=<length> | --no-abbrev]]
    [--column[=<options>] | --no-column] [--sort=<key>]
    [(--merged | --no-merged) [<commit>]]
    [--contains [<commit]] [--no-contains [<commit>]]
    [--points-at <object>] [--format=<format>] [<pattern>…​]
git branch [--track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-c | -C) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>…​
git branch --edit-description [<branchname>]
  1. 详解

  2. 命令选项

    1)-d , - - delete
    删除一个分支。 待删除的分支必须已经合并到上级分支。如果没有使用--track 或者 --set-upstrealm-to设置那么其必须在HEAD中。

    2)-D
    --delete --force的简写形式。

    3)-l ,– create-reflog
    创建分支的参考记录,这个操作会记录分支变化的所有记录。在非空的仓库中,参考记录通常是有文件core.logAllRefUpdates的配置选项设置为默认的。其否定形式为-- no-create-reflog只会重写早期的--create-reflog,但是并不存在可以关闭配置文件的设置。

4)-f- -force
重新设置 为 , 即使 已经存在. 不使用-f, git 分支会拒绝改变一个已经存在的分支 . 结合命令-d (--delete),允许在不考虑合并状态的情况下删除分支。结合命令-m (--move),可已在分支名称已经存在的情况下重命名分支。

5)-m,- -mov
删除/重命名分支和其对应的reflog。.

6)-M
--move --force的简写。

7) -c,- -copy
复制一个分支及其对应的reflog。

8) -C
--copy --force的简写.

9) –color[=]
以颜色高亮当前、本地和远程追踪的分支。其取值可以为:总是、从不和自动。

10) –no-color
关闭分支的颜色高亮,即使配置文件设置了默认的输出颜色。该命令等价于--color=never.

11) -i,- -ignore-case
过滤并不敏感的分支。

12)–column[=],–no-column
以列的方式显示分支列表。

13)-r,–remotes
列出或者删除(结合-d)远程跟踪的分支。

14)-a,–all
列出远程跟踪和本地分支。

14)–list
列出分支。

15)-v,-vv,–verbose
在列表模式下,显示每个head的sha1和提交说明。

16)-q,–quiet
创建和删除分支的简洁模式,不显示非报错信息。

17)–abbrev=
选择sha1在输出列表中的最小显示长度。

18)–no-abbrev
在输出列表中显示全部的sha1。

19)-t,–track
当生成一个新的分支时,设置一个 branch.<name>.remotebranch.<name>.merge的配置条目来标记分支的起始点。这个配置会通知git通过git statusgit branch -v来显示两个分支之间的关系。

20)–no-track
不设置“upstream”的配置。

21)–set-upstream
(这个选择带有迷惑性,今后将不再支持)请使用--track--set-upstream-to来替代。

22)-u ,–set-upstream-to=
设置<branchname>的追踪信息,因此 <upstream> 将作为<branchname>的 upstream 分支. 如果 <branchname> 没有指明, 则默认为当前分支.

23)–unset-upstream
<branchname>移除 upstream 信息 . 如果没有分支信息被知名,则默认为当前分支。

24)–edit-description
打开编辑器并编辑文本信息来解释当前分支,可以结合其他命令使用。

25)–contains []
只列举包含特定内容的分支。

26)–no-contains []
只列举不包含某些内容的分支。

37)–merged []
只列举从指定提交可达的分支。

38)–no-merged []
只列举从指定提交不可达的分支。

39)<branchname>
待创建或待删除的分支的名称。

40)<start-point>
新分支头将指向这个提交。

41)<oldbranch>
将要重命名的分支名称。

42)<newbranch>
待重命名分支的新名称。

43)–sort=
依据给定的关键字进行排序。

44)–points-at
只列出给定对象的分支。

45)–format

用法举例

1、从一个已知的标签处开始开发

$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
$ cd my2.6
$ git branch my2.6.14 v2.6.14  
$ git checkout my2.6.14

2、删除并不需要要的分支

$ git clone git://git.kernel.org/.../git.git my.git
$ cd my.git
$ git branch -d -r origin/todo origin/html origin/man   
$ git branch -D test   

(待续…)

检验(checkout)

切换分支或者重新存储工作树文件。

语法

git checkout [-q] [-f] [-m] [<branch>]
git checkout [-q] [-f] [-m] --detach [<branch>]
git checkout [-q] [-f] [-m] [--detach] <commit>
git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>…​
git checkout [<tree-ish>] [--] <pathspec>…​
git checkout (-p|--patch) [<tree-ish>] [--] [<paths>…​]

//
1. 详解

2.参数选项
1)-q,- -quiet
简洁模式, 压缩返回的信息。.

2)- - [no-]progress
报告进程状态。

3)-f,- -force
当切换分支,即使索引或者工作树与HEAD不同也进行处理。可以使用此方法丢弃本地更改。

4)–ours,- -theirs
当在核验索引的路径时,对未合并的路径分两步(ours,theirs)核验。

5)-b
创建新的分支。

6)-B
创建新的分支。如果已经存在,则重新定位到<start_point>,这与 git branch -f等价。

7)-t,–track
当创建新的分支时,进行upstream配置。

8)–no-track
拒绝upstream设置。

9)-l
创建新分支的reflog 。

10)–detach
核验一个提交而不是即将分支。(?)

11)–orphan
创建一个孤立的分支并切换至它。

12)–ignore-skip-worktree-bits
In sparse checkout mode, git checkout – would update only entries matched by and sparse patterns in $GIT_DIR/info/sparse-checkout. This option ignores the sparse patterns and adds back any files in .

13)-m,–merge
当切换分支时,如果存在多个文件在当前分支与需要切换的分支之中不一样,该命令会拒绝切换分支以便保存你的修改。

14)–conflict=

用法举例

$ git checkout master             #切换分支
$ git checkout master~2 Makefile  #从一个提交中移除一个文件
$ rm -f hello.c
$ git checkout hello.c            #重新保存hello.c

猜你喜欢

转载自blog.csdn.net/xholes/article/details/79890899