记不住git命令没关系,Sourcetree来帮你
发表于 2019-08-03 19:32
作为使用Sourcetree3年以上的人,小猪站长熟悉git的每一个功能,并在开发中使用git解决过各种场景问题。
本文可能是使用git工具的Sourcetree文章的最全面的在线版本。
对于许多开发,只需理解git push、pull并解决一些简单的冲突命令。事实上,git非常强大,很难通过back命令记住每个逻辑。
当然,不同的ide开发环境有不同的git插件,操作方法也不尽相同,最好学习一个跨平台的ide管理工具源码库。无论您使用java做什么,都可以使用python或Android。
介绍
git高阶的应用场景和大家分享下:
包含开发分支、集成分支、集成分支(稳定版本)、生产环境分支等的项目。
一个项目包括一个基础分支,按功能分配给每个分支,每个开发管理(十个分支),集成分支,生产环境分支。(模块代码只在十个分支中)
产品的一个主要分支对每个公司实现都有单独的需求,而这些需求很难以插件的形式实现,或者插件形式还需要各种个性化的修改插件,用于对应于每个分支的每个项目实现。
这里,小猪站长先简单描述这几种使用场景,具体内容,后面会逐步介绍。
欣赏下git分支:
常见用法
本文将与Windows环境和mac环境集成,但在界面或名词方面,这两个平台之间仍然存在一些差异,本文将尽可能多地进行解释。
添加仓库
mac下从url克隆
git remote add orgin http://10.10.100.6:3000/sl/shaolei.git
windows下从url克隆
抓取、获取分支信息
抓取(mac下的名字)获取(Windows下的名字)是指改变服务器的git库的信息,如后面几个版本,几个版本,我们共同的多人项目,您需要代码提交代码之前如果你有一个新服务器上提交和拉别人的改变,可以减少代码冲突。(菜单栏)
拉取代码
$ git fetch
$ git merge orgin/master
我将首先将接口划分为菜单栏、左栏、文件栏、更改栏和底部栏,以方便进行以下描述。
只需单击菜单栏中的“拉”按钮,就可以在本地拉出远程代码更改。
提交代码:
1.正常提交
首先选择未暂存文件,单击临时存储选项,或单击临时存储all。(文件列)
在下面的文本框中输入对这段代码的更改的描述。(底部栏)
默认情况下,sourcetree不会被推送到远程存储库,滴答会立即将更改推送到源库。(底部栏)
单击Submit(如果不勾选并立即将更改推送到远程,还需要手动单击菜单栏上的push)
这里我模拟了一些更改,只需更改代码,然后保存并返回到提交界面。
变更栏将包含这段时间内的所有更改,其中+表示当前增量行;-表示删除行;前两个行号更改代码前的行号,以及更改后的行号。
为了确保代码更改尽可能少,我们需要丢弃一些无意义的更改,比如删除第153行中的一行<dt></dt>,然后添加一行<dt></dt>,从而导致这种现象。通常代码被格式化或意外添加到一些不可见的字符,如空格,我们可以直接选择这两行,然后单击上面的丢弃行。
需要注意的是,丢弃不等于删除,丢弃所丢的东西是那一行的变更,比如是+号,那么丢掉代表不增加这一行,减号-同理丢的是不删除这一行,也就是恢复这一行。
sourcetree会把所有的变更以区块来分组,所以如果是整个区块的变更都没有意义,可直接丢弃整个块,如图:
然后临时保存所选的提交(filebar)临时代码
划痕和丢弃是类似的,代码片段临时存储在本地登台区域中,以便提交,提交时提交的代码是临时存储区域的代码。
当我们的一些功能已经实现,但是我们想优化代码时,我们担心我们不会优化成功。代码丢失了。如果没有git,我们可以备份代码。这里我们只需要临时存储代码。很好。在临时存储(常规修改)之后,后续更改将出现在未暂存文件的change列中。
此时,它是被丢弃还是继续临时存储取决于临时存储的最后一个文件。
当然,您也可以提交代码来实现类似的功能。
1. 解决冲突
当我与他人更改了同一文件的同一行时,(我们大多数人都更改了一个文件,git会帮助我们处理它,自动合并,但当更改了同一文件的同一行时,它会在拉的时候发生冲突)
我们可以先将我们代码贮藏起来(菜单栏),然后再拉取代码,接着应用贮藏,应用后冲突的文件会显示出来$ git stash
这个时候,我们需要指定一个版本,比如是别人的版本为准,还是我的版本,随后右键文件选择 解决冲突使用我的版本(左侧栏选择文件状态-》工作副本)
变更栏可以看到updated upstream 是别人改的版本,+====下面我改的版本。
如果远程和本地都有问题,建议打开ide工具编辑后提交。新开分支
在项目中,我们可能分为开发分支、集成分支、生成环境分支等,这时我们只需要在某个节点上右键选择分支即可
推送分支
新开的分支不会在远程显示,所以需要将分支推送到远程。
$ git push orgin 测试分支
切换分支
$ git checkout 3e1e7fc
需要切换到不通分支时,直接双击分支。拉取远程分支
和切换分支类似,双击远程分支即可。
回滚提交
有些时候,我们提交的代码有问题,需要回滚回去。
git revert *
回滚某次提交
将某次变更(在sourcetree里是某个节点)右键选择回滚提交。
回滚文件
回滚行
忽略文件
项目中,有一些文件夹是需要忽略,而不需要提交到仓库里,比如bin目录下、target目录下的文件。
这支持忽略单个文件、忽略所有扩展名或文件夹下的所有内容。在此之后,我们将不会看到这些文件更改。
应该注意的是,文件被忽略,只有未跟踪的文件可以被忽略。如果文件已被跟踪(以前已提交),则需要首先删除它们,然后提交给代码库,然后再次忽略它们。合并分支
由图中可以看出,我们的测试分支代码落后master分支2个节点,我们可以在master分支上右键选择合并到当前分支
当有冲突时,需要和上文中介绍的那样解决冲突,然后提交;如果没有冲突,需要手动点击推送按钮将合并后的变更提交到远程
贮藏(暂存)代码
$ git stash
上文已有介绍,主要指暂存所有变更,以便于应用暂存(windows下叫贮藏)
审查文件
假设一个文件被不同的开发修改过,有段代码需要找到修改人,我们可以右键审查文件查看每一行的作者。
$ git blame
效果如下:
右键某一行选择查看详细日志 可以看到该次提交的说明。查看文件变动历史
我们时常需要查看某个文件变动的历史,这里我们可以右键查看文件的 变更历史
$ git log
点击后效果如图:
按文件打开历史版本
有些时候,我们也需要查看文件的历史版本,这里可以选中节点后,选择那个变更文件,右键 打开历史版本
sourcetree会生成一个临时文件(历史版本),以供我们分析。标签的使用
我们有些时候需要给一个变更增加一个标签,比如稳定版1.0的标签
git tag v1
$ git tag -d v1 //移除标签
效果如下:
存档
存档指将当前版本打包成一个zip包。
检出分支
检出分支意思是将当前项目回到选中的版本,这样我们可以很轻松回到任意一个版本,来编译项目,或者检查当时项目的问题。
其他
合并通常用于绕过所有分支并合并提交给当前分支的所有更改。
Rebase,交互式更改是一种Rebase,主要用于更改远程分支名称的标识,大部分场景不使用
重置到当前节点:这个函数非常有用,您可以将当前分支回滚到该分支,然后显示所有文件更改,这相当于返回到准备提交时的时间(包括所有后续更改)。
从不同的分支中选择一个单独的提交,并将其与当前分支合并,这类似于打补丁,例如,用所有分支修复一个bug。
$ git revert
$ git cherry-pick 4a1fd5
分支的拉取推:从远程拉取
跟踪分支:当未跟踪时表示本地没有和远程建立分支的联系
重命名分支
删除分支等
如何查看界面上的操作对应命令
设置后可以看到每部操作的git命令
一些良好的习惯
尽可能多地放弃一些无意义的改
尽可能将开发人员任务分配给模块
在合并分支之后,需要立即解决冲突
在单个文件中减少代码更改的模块
如果你用我的版本来解决问题,你需要通知对方
总结
通过本文的介绍,您可以解决90%以上的代码提交问题。至于什么ide环境,这不是问题,使用ide开发工具在源代码树中打开项通过本文的介绍,您可以解决90%以上的代码提交问题。至于什么ide环境,都不是问题,使用ide开发工具在sourcetree中打开项目就好了。
评论 (0人参与)
最新评论