三、分支管理、远程分支管理、标签管理、git别名-创新互联-成都快上网建站

三、分支管理、远程分支管理、标签管理、git别名-创新互联

一、分支管理

成都创新互联专注于企业成都营销网站建设、网站重做改版、潮安网站定制设计、自适应品牌网站建设、H5场景定制商城开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为潮安等各大城市提供网站开发制作服务。# cd /data/gitroot # git branch   //查看当前仓库的分支 * master        //这儿只有一行,*号当前所在的分支是哪个 # git branch aming     //创建分支,名字叫aming # git branch    aming * master

//*号还在master,说明还在maser分支上

# git checkout aming   //git checkout,切换分支 切换到分支 'aming' # git branch   //再查看分支,*号已经到了aming了 * aming   master # ls   //当前分支和master里的文件是一样的 1.txt # vim 2.txt    //在aming分支下写一个新的文件 # git add . # git commit -m "add 2.txt"   //要把变更搞到版本库里去,只需要git commit就可以了。 [root@MRX gitroot]# ls 1.txt  2.txt [root@MRX gitroot]# git checkout master  切换到分支 'master' [root@MRX gitroot]# ls   //切换到master下查看是没有2.txt的 1.txt

分支是相互隔离开的,分支与分支之间操作文件是互相不受影响的。

分支合并

aming分支做了变更,master分支没有做,现在想让两个分支变化是一样的,可以用合并分支。把aming分支合并到master分支上去,这两个分支就保持一致了。

# git checkout master   //合并分支之前,先切换到目标分支 # git merge aming   //把aming分支里的变更合并到master里来。

如果master分支和aming分支都对2.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才能继续合并。

解决冲突的方法是在master分支下,编辑2.txt,改为aming分支里面2.txt的内容。 然后提交2.txt,再合并aming分支。

但是这样有一个问题,万一master分支更改的内容是我们想要的呢? 可以编辑2.txt内容,改为想要的,然后提交。切换到aming分支,然后合并master分支到aming分支即可(倒着合并)。合并分支有一个原则,那就是要把最新的分支合并到旧的分支。也就是说merge后面跟的分支名字一定是最新的分支。掌握这个原则,就不会出错。

# git branch   aming * master [root@MRX gitroot]# vim 2.txt   //master分支下的2.txt增加了几行 uipad uviadp euqpvan 4989496 hgiasd iahusdf # git add 2.txt # git commit -m "ch 2.txt" # git checkout aming # vim 2.txt    //aming分支下的2.txt删除了几行 uipad uviadp euqpvan # git add 2.txt # git commit -m "ch 2.txt" # git checkout master # git merge aming  自动合并 2.txt 冲突(内容):合并冲突于 2.txt 自动合并失败,修正冲突然后提交修正的结果。 # cat 2.txt    //此时2.txt里不同部分的内容会自动被标记出来。 uipad uviadp euqpvan <<<<<<< HEAD 4989496 hgiasd iahusdf ======= >>>>>>> aming [root@MRX gitroot]# vim 2.txt  uipad uviadp euqpvan # git checkout aming 2.txt: needs merge error: 您需要先解决当前索引的冲突 //这里又一个问题,当你合并有冲突时,你不能切换到另一个分支下去。所以尽量避免发生合并冲突 # git add 2.txt # git commit -m "ch 2.txt" # git checkout aming 切换到分支 'aming' # git merge aming   //两个分支内容保持一致了,再来合并就不会产生任何变化。 Already up-to-date.

# git branch -d aming //删除分支。如果正在当前分支下,则无法删除当前分支,切换到另一个分支即可。

如果分支没有合并,删除之前会提示,那就不合并,强制删除:

# git branch -D aming

二、远程分支管理

使用分支的原则

对于分支的应用,建议以这样的原则来:

master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上。

创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master

开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后合并到dev分支。

dev分支合并bob分支的命令是:

# git checkout dev   //先切换到dev分支,然后 # git merge bob

远程分支

本地新建的分支如果不推送到远程,对其他人就是不可见的。

常识:git clone只能克隆一个master的分支。

三、分支管理、远程分支管理、标签管理、git别名

创建一个新文件linux.doc和一个新分支dev。

创建分支成功后,再次点击,可以看到对勾在dev的前面,这里可以选择更换分支。

再回到命令行下查看分支,先将这个项目克隆,可以发现只有一个master分支。

查看远程分支 git ls-remote origin,可以看到所有分支。

# git ls-remote origin 45337b0d65a36760796a0f3a45e3f90e1d38ed4e HEAD 41b9784a6f7aeecb1d485e956b10232b5114592a refs/heads/dev 45337b0d65a36760796a0f3a45e3f90e1d38ed4e refs/heads/master

对于git push分支分两种情况

当本地分支和远程分支一致时,git push会把所有本地分支的变更一同推送到远程,比如master和dev。

如果想只推送一个分支,使用git push origin branch-name。

当本地分支比远程分支多,默认git push只推送本地和远程一致的分支,想要把多出来的本地分支推送到远程时,使用git push origin branch-name 如果推送失败,先用git pull抓取远程的新提交。

git clone的时候默认只把master分支克隆下来,如果想把所有分支都克隆下来,需要手动创建,在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称要一致。这里的两个branch-name指远程分支的名字。

# git checkout -b dev origin/dev 分支 dev 设置为跟踪来自 origin 的远程分支 dev。 切换到一个新分支 'dev' # vim 4.txt # git add 4.txt # git commit -m "add 4.txt" # git push 0b51fcb..43fd64d  dev -> dev   //git push后,最后一行可以看到从dev推送到了dev。 再到远程上刷新,可以看到dev分支下出现了4.txt,而master是没有的。

三、标签管理

标签类似于快照功能,可以给版本库打一个标签,记录某个时刻库的状态。也可以随时恢复到该状态。

git checkout master 先切换到master分支上,以后打标签也是针对master分支来做。  git tag v1.0  给master打一个标签v1.0  git show v1.0 查看标签信息  git tag  查看当前分支下所有的标签  tag是针对commit来打标签的,所以可以针对历史的commit来打tag,v1.0是对最新的版本打的标签。  git log --pretty=oneline --abbrev-commit  //先查看历史的commit,这里后面的选项指用简写的commit。  git tag v0.9 46d3c1a  //针对历史commit打标签  git tag -a v0.1 -m "first tag" 2ec587f  //可以对标签进行描述# git show v0.1 tag v0.1 Tagger: aming  Date:   Thu Sep 19 11:06:29 2019 +0800 first tag   //查看标签信息可以看到描述 commit 2ec587ff6e9e0e4c67aefb84e02b2b73693d633e Author: aming  Date:   Sun Sep 8 14:59:15 2019 +0800     first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f0cbde --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# apelearn

git tag -d v0.8  //删除标签

前面的操作都是在客户端,还没有推送到远程服务端。

查看远程上的tags方法,在切换分支的选项里:

三、分支管理、远程分支管理、标签管理、git别名

git push origin v1.0   //推送指定标签到远程

git push --tag origin   //推送所有标签

如果本地删除了一个标签,远程也想要删除需要这样操作:

git tag v0.8 -d    //删除本地标签

git push origin :refs/tags/v0.8   //删除远程标签

四、git别名

git commit 这个命令可以用别名表示,用别名可以提高我们的工作效率。 格式:  git config --global alias.别名  命令名  git config --global alias.ci commit  git config --global alias.co checkout  git config --global alias.br branch  这些别名的配置都在/root/.gitconfig文件中,可以在文件内进行更改。    查看git别名使用命令  git config --list |grep alias  查询log小技巧: # git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" # git lg   //可以看到用户,时间,描述和tag。 * 45337b0 - (HEAD, tag: v1.0, origin/master, origin/HEAD, master) add 3.txt (6 天之前)  * 41b9784 - Create linux.doc (7 天之前)  * d816b47 - add 1.txt (13 天之前)  * 0c8b170 - add 2.txt (13 天之前)  * 2ec587f - first commit (13 天之前)    取消别名  git config --global --unset alias.br

总结:

分支管理

git branch  查看分支

git checkout master  切换分支

git merge aming  把aming分支里的变更合并到master里来

git branch -d aming  删除分支

git branch -D aming  强制删除分支

远程分支管理

git ls-remote origin  查看远程分支

git push origin branch-name  推送单个分支

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name

标签管理

git tag v1.0  给master分支打一个标签v1.0

git show v1.0  查看标签信息

git tag  查看所有标签

git log --pretty=oneline --abbrev-commit  查看历史的commit

git tag -a v1.0 -m "first tag" 2ec587f  对标签做描述

git tag -d v0.8  删除标签

git push origin v1.0   推送指定标签到远程

git push --tag origin   推送所有标签

git tag v0.8 -d    删除本地标签

git push origin :refs/tags/v0.8   删除远程标签

git别名

git config --global alias.别名  命令名

git config --list |grep alias  查看别名

git config --global --unset alias.br

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:三、分支管理、远程分支管理、标签管理、git别名-创新互联
文章出自:http://kswjz.com/article/ccdhjp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流