git教程总结(下)

本文介绍Git中分支的基本操作,包括创建、切换、合并及删除等,并探讨多人协作时的分支管理和冲突解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git checkout <branchName> 切换分支
git branch <branchName> 创建分支
git checkout -b <branchName> 创建并切换分支
git checkout -d <branchName> 删除分支
git checkout -D <branchName> 强制删除分支 
git branch 列出所有的分支,并在当前分支前面有一个*号
git merge <branchName> 合并branchName到当前的分支
git merge <branchName> --no-info -m 'commitId' 禁止fast-forward模式的合并 fast-forward会丢掉分支信息
git log --graph=oneline --abbrev-commit 查看分支图谱
git stash 储存现场,临时开发别的分支
git stash list 查看所有储存的现场,包括stashId
git stash pop 恢复并删除stash的栈顶
git stash apply [stashId] 恢复stashId现场,默认为栈顶
git stash drop [stashId] 删除stashId现场

git remote 查看远程库信息
git remote -v 查看相信的远程库信息
git push <remoteName> <branchName> 提交到远程库
git pull 从远程库获取最近的提交 (冲突时)

branch 和 tag 有很多相似之处,可以一起记忆

git tag <tagName> 给当前分支添加标签  ==>  git branch <branchName>
git tag <tagName> commitId 给过去的某次提交后的版本库打标签  commitID使用git log查看
git tag -a <tagName> -m "tag hint" [commitId] 创建带说明的标签 
git show <tagName> 查看某个标签的详细信息
git tag 列出所有的标签 ==> git branch
git tag -d <tagName> 删除某个标签 ==>git branch -d <branchName>
git push <remoteName> <tagName> 将某个标签推送到远程库 ==> git push <remoteName> <branchName>
git push <remoteName> --tags 一次性推送全部尚未推送所有的标签
git push <remoteName> :refs/tags/<tagName> 删除远程库中的标签 

1.git用master指向最新的提交,再用head指向master,故版本回退只是head和master的移动

2.但你创建新的分支的时候,head又指向了新的分支

3.git merge <branchName>合并branchName分支到当前的分支,有两种模式

    (1) fast-forward:只需要把master和head的指针往前移动就可以。

           

(2)else

4.分支基本操作

git checkout -b <branchName1> 创建并切换分支
------对本地库的修改,详见git教程总结(上) 最后记得add 和 commit
git checkout <branchName2> 切换到上一个分支
git merge <branchName1> 合并branchName到当前的分支
git checkout -d <branchName1> 删除分支

5.冲突

如图所示:master和feature1修改了同一个文件的相同位置,合并的时候会有冲突,必须手动解决这个冲突(可以使用git status查看冲突的地方),查看冲突的文件,git用 <<<<<<   、 ======、>>>>>>来标记不同分支的内容

手动修改这个文件,再次 add commit,就解决了冲突

使用git log --graph可以查看改图

6.分支管理策略

    (1).master主分支只用来发布新版本,稳定

    (2).dev分支干活,不稳定

    (3).修复bug,可以把当前分支git stash(冻结)了

7.多人协作

    (1).git clone remoteUrl 克隆远程库之后默认只有master分支

    (2).git checkout -b <branchName> <remoteName>/<branchName>

      eg. . git checkout -b dev origin/dev   创建远程的dev分支到本地

    (3)冲突:你打算push的文件和你小伙伴push的文件有冲突

    (4)解决冲突:

            a.git pull把最近的提交从远程库中抓取下来,

            b.git pull失败,git branch --set-upstream ....(git pull的提示中有)指定本地的分支与远程分支之间的链接

            c.git pull 获取

            d.打开文件手动解决冲突(手动修改文件内容)

            e.add -> commit -> push

8.删除标签

标签尚未推送到远程库,删除本地库标签
    $ git tag -d <tagname>
标签已经推送到远程库
    首先删除本地库标签: git tag -d <tagname>
    删除远程库标签: git push <remoteName> :refs/tags/<tagName>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值