前言:之前公司一直使用svn作为版本管理工具,用习惯了svn后来切换git后就感觉很不方便,很多地方都要用命令完成。在网上查到很多git相关的操作,都是使用命令操作的,明明windows上安装了TortoiseGit都界面化了,为啥还是那么依赖黑窗口命令。

git的优势以及文件存储方式这里不细说,直接和svn对比起来说界面或工具怎么用的。

 

一、代码下载:

svn:右键点击SVN Checkout后输入文件路径就可以获得库里的代码。

git:右键点击Git Clone输入url即可

区别:svn能单独拉取某个目录的文件,git只能一个项目全部拉取(注意大文件需要git-lfs工具)。

 

二、更新代码:

svn:SVN Update即可,被删除的本地文件会恢复。

git:TortoiseGit 中Pull即可,删除的文件不会恢复。

问题git怎样恢复删除的本地文件?只需要右键->TortoiseGit->Switch/Checkout->勾选上Overwrite working tree changes(force)->OK即可,但是这样会把你的修改全部覆盖,所以要先备份先其它修改的文件。

 

三、提交代码:

svn:先update,再commit,最后提交即可。

git:先pull(很重要),再commit对比好文件后,选择Commit&Push提交本地仓库并推送远端仓库,如果你比较的过程中有人上库了,就会推送失败,这时关掉窗口,再pull一下,如果别提交的和你的不冲突的话,直接点下push就好了。冲突的话就要回退本地仓库在提交了。

小结:git比svn多了个本地仓库,比较前先pull很重要,有时pull时冲突很多,可以先将自己修改的文件备份下,然后用上面的恢复本地文件的办法强制同步,同步后再pull,然后把备份的文件拷贝回来,比较好了上库。

 

四、切换分支:

git不能拉取单独的文件夹,clone一个分支可能会花很长时间,最好直接切换分支就好,可视化操作:右键->TortoiseGit->Switch/Checkout->选择要切换的分支(如果找不到先关掉pull一下)->OK,如果切换时冲突,可以勾选上面提到的Overwrite working tree changes(force)强制覆盖,但之前的修改就没了。切换过分支会在本地有个仓库,名字默认和远端一样,只是少了些前缀,下次再切换是直接切本地仓库,然后pull下就行。

 

五、基本命令行操作:

在linux系统上,那就只能用命令行了,所以基础的几句还是要会的。

git pull:同步

git branch -a: 显示分支, -a 表示全部

git checkout +分支名:切换分支

 强制覆盖本地文件:

git fetch - -all
git reset - -hard origin/master

通常我们在windows上编辑文档,在linux上git pull拉代码下来编译,如果linux修改了点代码导致git pull 失败,那就 git checkout -- . 执行以下,再git pull下就好了。切换到其它分支时如果也因为本地修改切换失败,就加 -f ,git checkout -f +分支名,切换完后git pull下。

 

六、总结:

git 有很多功能,不愿探索的话,会pull,commit, push,和checkout就够用了,冲突多的时候就先备份修改的文件,然后强制同步,同步完在拷贝回来比较上库就好了。注意大文件是用git-lfs管理的,特别是linux上要安装git-lfs才能拉取大文件。

git-lfs rpm包下载链接:http://www.rpmfind.net/linux/rpm2html/search.php?query=git-lfs&submit=Search+...

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐