对于在学习或工作中需要编写程序的同志是否遇到过这样的问题,你编写了一个基本满足需求的程序,这里将该版本记为版本1,但是距离截止时间还有一段时间,你想对你的程序进行优化,一开始自信满满,直接在版本1上修改,但是修改一段时间后发现修改的程序还没有版本1效果好,你想再次从版本1开始修改,这时你要痛苦地回忆修改了哪些地方,并一一改回版本1的原样。如果是一个大程序,并且对版本1进行了太多修改,版本回退将是很痛苦的一件事。如果你还在通过手动备份进行版本控制(Version Control),备份次数过多你可能会忘记哪个是你想找的版本,不得不说这种做法实在太low了。 如果你想免除版本控制的苦恼,就很有必要了解下目前最先进的分布式版本控制系统git,更重要的是git是开放源码的版本控制软件,Linux之父林纳斯·托瓦兹(Linus Torvalds)花了10天左右时间开发了git的第一个版本。
git的安装不难,而且网上教程很多,这里就不说了。本节将列出git的常用命令,对于没有接触过git的同志可以简单浏览一下。另外这一节主要是参照参考[1]写的,参考[1]有些话翻译的不友好。
你为某个项目写的程序一般都会放在一个单独的文件夹中,打开该文件夹,然后在命令行执行
git init
这样就创建了一个git仓库。
执行如下命令以创建一个本地仓库的克隆版本,相当于将原文件copy了一份:
git clone /path/to/repository
如果是远程服务器上的仓库,你的克隆仓库的命令如下:
git clone username@host:/path/to/repository
你可以将文件<filename>添加到你的git仓库的暂存区里,使用如下命令:
git add <filename>
或者使用如下命令:
git add *
将所有文件添加到git仓库的暂存区里,这里的星号“*”是正则表达式,git支持正则表达式。 使用如下命令,将暂存区保存的文件正式提交到本地仓库:
git commit -m "代码提交信息"
双引号中的内容是你对本次提交的说明,例如可以是“新提交了xx文件”或“对xx文件的xx部分进行了修改”。至此,你的改动已经提交到了HEAD,但是还没提交到你的远程仓库。
你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远程仓库:
git push origin master
可以把master换成你想要推送的任何分支,master是默认的主分支。
分支是用来将开发过程和正式发行版本绝缘开来的。在你创建仓库的时候,master 是“默认的”。你可以在其他分支上进行开发,完成后再将它们合并到主分支上。 创建一个分支“dev”并切换到dev分支的命令如下:
git checkout -b dev
切换回主分支的命令:
git checkout master
如果你想删除分支dev,执行下面一条命令:
git branch -d dev
除非你将分支推送到远程仓库,不然该分支别人都看不到:
git push origin <branch>
当远程仓库被修改过,你想要更新本地仓库至最新版本,执行:
git pull
这样git就会在你的工作目录中获取(fetch)并合并(merge)远端的改动。要合并其它分支到你的当前分支(例如 master),执行:
git merge <branch>
执行以上两条命令,git 都会尝试去自动合并改动。不幸的是,自动合并并非次次都能成功,可能出现合并的两版本有冲突(conflicts)的情况。 这时候就需要你修改这些文件来人工解决这些冲突(conflicts) 了。 在合并改动之前,也可以使用如下命令查看要合并的两分支有哪些地方不同:
git diff <source_branch> <target_branch>
如果看不懂本文,你又想学习git,别灰心,你可以去看廖雪峰的零基础git教程[2]。本文也不是用来入门git的,只是给大家介绍一下这个工具。最后,祝大家用git用的开心!
参考:
[1] git 简明指南
[2] Git教程 - 廖雪峰的官方网站
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。