likes
comments
collection
share

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

作者站长头像
站长
· 阅读数 23

前言

git,知名的分布式版本控制系统,使用它应该是作为一个程序必须掌握的技能,但是为了更加高效,大多数人已经不使用git命令行操作了,大家都在使用各种git可视化工具,Sourcetree就是一个一款不错的git可视化工具。

本文介绍git可视化工具Sourcetree操作详细使用,包括各种git分支管理操作、git各种冲突解决方案(合并冲突、拉取冲突、忘记拉取便提交、git取消合并操作)的解决方案,让你能够完全掌握git的使用。

创建本地git项目

方法一:直接导入远程仓库

首先我们需要知道自己的仓库如何拉取到本地。

这里以码云为例,找到对应的源路径/URL:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

复制,然后来到Sourcetree:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

方法二:将本地项目传递到远程仓库

首先选择创建仓库

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

会提示你这个文件夹不为空,无视

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

复制远程已经提前创建好远程的仓库

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

然后配置远端我们要对应的仓库

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

更新版本操作

修改

当你本地代码发生改变时,会出现未暂存文件:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

拉取

当别人更新了代码,而你本地没有拉取,拉取会亮起,可以点击拉取别人代码:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

提交

当你修改了代码,需要提交操作:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

分支操作

远程分支与本地分支

分支分为远程仓库的分支,与被你拉取到本地的分支

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

切换分支

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

要注意,如果本地有修改了没有提交的代码,注意是修改,新增内容一般是不影响的,切换时会报错。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

可以先通过提交操作再切换。

但是问题来了,如果你代码就修改了一半你还不想提交但是又不得已切换分支怎么办呢?看下面。

贮藏

可以暂时保留修改的内容,清空状态区,就可以进行切换分支操作,等切换回来时再应用贮藏区,变回原来修改中的状态。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

当我们切换出去再切回来时,再进行应用

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

删除分支

需要注意的是,删除当前分支时需要切换去别的分支,你不可以删除当前自己所在的分支。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

获取远程分支

我删除了本地的dev分支,这时候我想要获取远程的dev分支到本地,如何操作:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 需要注意的是检出分支时会自动切换去检出的分支,如果你本地还有修改了未提交的代码,要注意先提交或者进行贮藏操作噢。

创建新分支

比如我们希望创建一个测试版本的分支,所有更新操作都在测试版本上做,如果没问题了再合并来主分支,怎么创建呢?

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

其实也还是检出操作,所以一样要注意本地未提交代码问题。

合并分支内容

我们在test测试分支上提交了代码,我们希望将他合并到master主分支。

首先我们先切回主分支:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

冲突

合并冲突

为了测试冲突,我们先在master上创建提交一个简单的内容,注释了的111:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

接下来我们切去test分支,在同样的位置,提交一个注释的222:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

然后我们切换到master分支,进行将test合并到master的操作,会提示你冲突了:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

我们可以看到两个不同版本的状态,冲突内容:

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

选择你要保留的,如果是我的版本那就是保留//111,如果是他人版本就是保留//222。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

但是这里我们合并test,test只修改了这个内容,如果我们选择我的版本进行合并,虽然进行了合并操作,这次的合并操作便没了什么意义,我们的master分支内容什么都没变。

不过实际项目中我们不会出现这种情况,肯定是视需求而决定需要保留什么内容,比如test除了这个与我们冲突的注释,还新增了其他功能,我们虽然没有采纳这个注释的修改,但是我们合并了新增的功能。

被合并的test分支不会受到合并操作的任何影响,内容不会发生改变,我们的合并操作只是为了让master分支能够得到test上更新的代码。

未拉取便提交冲突

一般多人开发时会遇到的状况。

如果代码没有冲突,你们修改的不是同一个页面的代码,那拉取与提交的先后是不影响代码内容的。

比如别人制作了一个新页面,你没有拉取下来,你修改了原来页面的内容,直接提交。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 报错了。 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 出现这种推送不上去的状态。 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

这时候不用急,你只要确保不要让自己的错误提交到远程就好

记住,工作中,宁愿自己修改的代码丢失,也千万别覆盖别人修改的代码

其实很简单,我们切回到我们提交前的即可。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使 接下来先拉取再提交即可。 git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

如果我们先拉取再提交时,先拉取就报错了,一般就是最后一个错误:拉取代码与本地修改代码有冲突,见下一节。

拉取代码与本地修改代码有冲突

比如别人将注释修改为333,而你本地修改代码时,注释修改成了777。

现在你想提交,先拉取再提交。

拉取时就报错了,死活拉不下来,多少遍也不行。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

这时候我们就先提交再拉取。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

然后就会告诉你冲突在哪里了,我们就选择保留哪个了,见上文合并冲突解决方法,解决完冲突再提交即可。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

撤销合并操作

假如自己合并了不想合并的内容,想撤销掉一次合并操作,如何进行呢?

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

上图dev合并到了master上面,这时候我们选择合并前master的那一次提交,选择重置分支到此次提交。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

打开强制推送。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

不去管提交和拉取,直接选择推送。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

把改变内容全部移除和丢弃

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

然后就发现合并操作消失了。

git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)git可视化工具Sourcetree操作详细使

尾言

看完这些,即使你完全不会git的命令,使用sourcetree也可以解决你日常95%的git版本控制问题啦,觉得有用的话点个赞吧~

转载自:https://juejin.cn/post/7078129531785052196
评论
请登录