Git分支详解

1 查看命令

序号命令描述
1git status查看提交状态
2git log查看提交日志
3git log -p产看所有更新位置
4git log -p 3查看最近三条更新位置
5git log --stat查看文件修改行数
6git log --pretty=oneline按行展示提交日志
7git diff查看更新位置(未提交前)
8git add添加更新文件
9git commit -m “desc”提交文件
10git commit -a -m “desc”跳过add,直接提交
11git commit --amend重新快照提交文件,修改的文件提交到上次提交的快照中,即两次提交实际为一次提交(合并了)
12git reset HEAD file_name撤销暂存区添加的文件
13git checkout --fileName撤销对文件的修改

2 远程仓库管理

序号命令描述
1git remote查看远程仓库
2git remote -v产看仓库推/拉地址
3git remote show [remote-name]查看远程仓库详细信息
4git remote rename [shortname] [newshortname]修改映射名称
5git remote add [shortname] [url]添加远程仓库,其中shortname为可选项,作为仓库地址
6git fetch shortname本地仓库记录shortname,将远程地址映射为缩略名
7git fetch remote-name从远程仓库获取数据
8git push -u [remote-name] [branch-name]推送文件到对应远程仓库的对应分支,如origin master,即origin仓库master分支

3 标签

序号命令描述
1git tag查看仓库所有tag
2git tag -l ‘version’查看对应版本的文件
3git tag v*.*添加轻量级标签
4git tag -a v*.* -m ‘desc’添加含附注的标签,其中a为annotated
5git tag -s v*.* -m ‘desc’添加私钥标签
6git show v*.*查看对应版本的信息
7git tag -a v*.* prefix为提交的历史文件,补充tag,使用git log --pretty=oneline查询提交的id,选择前几位作为prefix
8git push -u origin --tags将新建的tag同步到远程仓库

4 分支

分支是指向commit(提交)文件快照的指针,不同的分支管理,使用HEAD管理,HEAD指向的位置即为commit的分支,默认HEAD指向master分支.每次提交,需要切换到需要commit的分支,git checkout branchName

4.1 主分支

只创建一个主分支,每次主分支提交会生成一个快照,该快照保存每次提交的完整信息.
在这里插入图片描述

图4.1 主分支提交

4.2 添加一个自分支

添加一个自分支

git branch subBranch

分支操作使用HEAD定向提交,HEAD默认指向master.提交时,移动HEAD指向的分支名称即可.

在这里插入图片描述

图4.2 新建子分支

4.3 子分支提交

自分支提交时,需要先将HEAD指向子分支对应的缓存区.

git chechout subBranch
git commit -a -m 'desc'

在这里插入图片描述

图4.3 子分支提交

4.4 子分支向主分支合并

子分支向主分支合并时,将HEAD切换至主分支,然后将对应的子分支合并到主分支.

git checkout master
git merger subBranch

在这里插入图片描述

图4.4 子分支向主分支合并

4.5 主分支和子分支各自提交

主分支开发并提交,子分支开发并提交.

在这里插入图片描述

图4.5 子分支提交和主分支提交

4.6 新建第二个子分支

新建第二个子分支并提交.

在这里插入图片描述

图4.6 新建第二个子分支并提交

4.7 第二个子分支合并到主分支

第二个子分支直接与主分支合并,快照版本为v3.2.

在这里插入图片描述

图4.7 第二个自分支向主分支合并

4.8 第一个子分支向主分支合并

当第二个子分支向主分支合并后,第一个子分支再向主分支合并后,会新建一个快照v3.4,表示该快照有两个祖先v3.2和v3.3.
在这里插入图片描述

图4.8 主第一个子分支向主分支合并

4.9 子分支向主合并后删除

git branch -d subBranch
git branch -d subBranch2

5 管理分支

6 Usage

6.1 查看状态

git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

无文件要提交,干净的工作区

6.2 查看提交日志

git log
commit 7b4348d65b7202829b0ed22054260e0eceb87ad9 (HEAD -> master, origin/master)
Author: userName <email address>
Date:   Thu Nov 7 09:07:32 2019 +0800

    spring boot usage.
  • 查看最近2条更新
git log -p 2
commit 7b4348d65b7202829b0ed22054260e0eceb87ad9 (HEAD -> master, origin/master)
Author: userName <email address>
Date:   Thu Nov 7 09:07:32 2019 +0800

    spring boot usage.

diff --git a/sbUsage/.classpath b/sbUsage/.classpath
new file mode 100644
index 0000000..43f6a59
--- /dev/null
+++ b/sbUsage/.classpath
  • 查看更新修改行数
git log --stat
commit 7b4348d65b7202829b0ed22054260e0eceb87ad9 (HEAD -> master, origin/master)
Author: userName <email address>
Date:   Thu Nov 7 09:07:32 2019 +0800

    spring boot usage.

 sbUsage/.classpath                                 |    49 +
 sbUsage/.project                                   |    23 +
 sbUsage/.settings/org.eclipse.core.resources.prefs |     4 +

6.3 查看修改

  • 提交前的修改
git diff
git diff --staged

6.4 跳过缓存直接提交

无需使用git add

git commit -a -m "add function"

6.5 远程仓库

  • 查看远程仓库
git remote
origin
  • 查看远程仓库推拉地址
git remote -v
origin	https://github.com/userName/rep.git (fetch)
origin	https://github.com/userName/rep.git (push)
  • 查看远程仓库详细信息
git remote show orgin
* 远程 origin
  获取地址:https://github.com/userName/rep.git
  推送地址:https://github.com/userName/rep.git
  HEAD 分支:master
  远程分支:
    dependabot/maven/HelloSpringMVC/jackson.version-2.10.1                                   新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackend/commons-fileupload-commons-fileupload-1.3.3              新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackend/jackson.version-2.10.1                                   新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackend/org.apache.httpcomponents-httpclient-4.3.6               新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackendMultiDbSource/commons-fileupload-commons-fileupload-1.3.3 新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackendMultiDbSource/jackson.version-2.10.1                      新的(下一次获取将存储于 remotes/origin)
    dependabot/maven/ssmPureBackendMultiDbSource/org.apache.httpcomponents-httpclient-4.3.6  新的(下一次获取将存储于 remotes/origin)
    master                                                                                   已跟踪
  为 'git pull' 配置的本地分支:
    master 与远程 master 合并
  为 'git push' 配置的本地引用:
    master 推送至 master (最新)
  • 新建tag
    选择一个历史提交文件,为其添加tag
git log --pretty=oneline
7b4348d65b7202829b0ed22054260e0eceb87ad9 (HEAD -> master, tag: v0.0, origin/master) spring boot usage.
a903345c7bf652682c118a7fe8c6afde251a59e3 pure backend with websocket &kafka
8bbd320e43c4925f2e0119afd5893f54ed67f8b9 add websocket push message with kafka
0c3384d19806ebe264d4e52a07ae74d148f02e36 ssm framework pure and fullstack
d5c31e7cabffc5d584f21c866255001e6d3c31da MVC in directory corresponding
d152c6078606d81f156c8677c55ce77a26712ee3 Spring MVC framework V0.0
35f10533e94c5e25de27d8cb77c35f7051dcaf2e first Android app and POST, GET request test
  • 为spring boot usage添加tag
git tag -a v0.0 7b4348d
  • tag同步到远程
    git的标签默认不会同步到远程,需要push tags将tag同步到远程.
git push -u origin --tags
Username for 'https://github.com': userName
Password for 'https://xindaqi@github.com': 
对象计数中: 1, 完成.
写入对象中: 100% (1/1), 154 bytes | 154.00 KiB/s, 完成.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/xindaqi/java.git
 * [new tag]         v0.0 -> v0.0

在这里插入图片描述

图6.1 github的tags

【参考文献】
[1]https://git-scm.com/book/en/v2
[2]https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%8A%80%E5%B7%A7%E5%92%8C%E7%AA%8D%E9%97%A8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值