git 分布式代码管理的一个工具,根据最近初步接触的使用情况,做一个简单的总结:
首先有两个仓库(这里假设两个简单的目录):远程/home/remote ,本地 home/local
1.初始化工作:git init 远程仓库,在本地从远程仓库 git clone 一个仓库下来,本地也可以git init,但是这样做的好处是随后的git push/pull 命令获得一个默认的远程仓库地址,随后的命令中就不需要指明;
/home/remote/ $ git init
/home/local/ $git clone xxx@127.0.0.1:/home/romete
2.将本地代码更新到远程仓库,分为三步,本地创建文件vi hello.cpp,
/home/local/ $ git add hello.cpp
/home/local/ $ git commit -m "hello world!"
/home/local/ $ git push
此时远程目录下应该添加文件 hello.cpp,但是如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时,
3.当需要从远程目录获得其他版本的代码时,可以使用 git pull;
此外,如果需要跟踪文件的状态,就必须得用git add/commit 来提交文件,同时与git checkout结合使用就可以在撤销文件的修改:
假如此时你在编辑hello.cpp,当你完成一部分工作之后可以 git commit -a hello.cpp,然后接着进行下一步修改,但是发现又想还原到修改之前的状态,此时只用git checkout hello.cpp就可以搞定了!
近来又接触了git 分支 的用法,分支可以用来对你的代码做不同的试验性的修改,一条分支上的改变不会影响到另一个分支,这样即使后来的想法不对了,也能保存一份最初版本的备份,使用非常方便简洁。
git 默认有一个主分支master, 此时创建文件hello.c 并且commit 到本地仓库,
git branch child master 就可以在 master 上创建子分支child,那么在此时在child上做修改,同时也要commit一下,那么在回到master分支,是看不到child上所做的修改的。
使用git管理软件开发流程:http://nvie.com/posts/a-successful-git-branching-model/