Git 分支管理和版本控制

Git 分支管理

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

创建和切换分支命令
git branch  //后面不跟参数时,表示查看当前所有的分支
git branch (branchname)  //创建分支
git checkout (branchname)  //切换分支
git checkout -b (branchname)  //创建分支并切换到新分支

新建立的分支跟原来的分支是一样的,比如我们从master分支执行git branch test 命令,那么test分支的内容就跟master分支一样,但是如果我们切换到test分支中做修改,提交等操作,是不会影响master分支的内容的,从而让我们能够在不同分支中做事,并来回切换。一般我们建议是保留主分支的稳定性,公共的修改统一提交主分支master,主分支来做代码的维护工作。创建的分支就做个性化的需求项目。

删除分支
git branch -d (branchname)  
合并分支
//将testbranch分支的内容合并到当前分支
git merge  testbranch  
git rebase   testbranch 

两个使用场景是不一样的,merge只是合并另外一个分支的内容,rebase也合并另外一个分支的内容,但是会把本分支的commits顶到最顶端
具体区别请参考zhangyulin54321博客:https://blog.csdn.net/zhangyulin54321/article/details/79996768

解决冲突

在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:

 git rebase--continue

这样git会继续应用(apply)余下的补丁。
在任何时候,你可以用–abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。

 git rebase--abort

冲突代码说明:

<<<<<<< HEAD
runoob.com
新增加一行
=======
www.runoob.com
>>>>>>> change_site

<<<<<<< 到 ======= 里面的内容为当前分支的原始分支的内容
======= 到 >>>>>>> 里面的内容为需要合并进来的分支的内容

查看提交历史
git log

在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
执行 git log 命令后的内容:

commit 088e0543244833e446f1dff67cb5a6a865a4a0ec
Merge: a57c09b ab03264
Author: zdd <zdd@zdd>
Date:   Tue Jan 29 11:17:54 2019 +0800

    Merge branch 'main_0119' into gms_0129

commit a57c09bbe1e3a1425da96aae03ae51d7250413a4
Merge: fa6e4ad 7ea4562
Author: zdd <zdd@zdd>
Date:   Sat Dec 15 10:04:59 2018 +0800

    Merge branch 'main_1219' into gms_1219

commit ab03264c606894963e01047e9e8772cfd82004d1
Author: zdd <[email protected]>
Date:   Thu Dec 6 14:00:31 2018 +0800

     Updating security string for oc-mr1 to 2019-01-05

commit 就是我们每次提交自动生成的哈希值,我们在查看版本会用到这个哈希值。

查看历史记录的简洁的版本 git log --oneline
git log --oneline
088e054 Merge branch 'main_0119' into gms_0129
a57c09b Merge branch 'main_1219' into gms_1219
ab03264  Updating security string for oc-mr1 to 2019-01-05
查找指定用户的提交日志可以使用命令:git log --author
git log --author=zdd --oneline
088e054 Merge branch 'main_0119' into gms_0129
a57c09b Merge branch 'main_1219' into gms_1219
fa6e4ad Merge branch 'main_1119' into gms_1119
e232fb4 Merge branch 'main_1019' into gms_1019
d14f076 Merge branch 'main_0919' into gms_0919

猜你喜欢

转载自blog.csdn.net/zhu522959034/article/details/88242955
今日推荐