目前大部分公司都已经使用Git进行工作管理,而之前习惯使用SVN或者CVS的公司也逐步使用git进行替换。Git与SVN等的最大的区别在于Git是分布式版本控制系统,最大好处就是在没有网的地方你仍然可以提交文件无需担心代码丢失并且可以创建分支、查看历史版本记录等等。并且你无需再像以前那样以补丁包的形式发送email给你的团队,只需要创建一个分支,并且在存储和传输过程中的安全性更高。
Git内部的三种状态:已提交(committed),已修改(modified),已暂存(staged)。已提交表示已经将文件提交到本地数据库中了,已修改表示修改了某些文件但是还没有提交,已暂存表示把已经修改的文件放到下次要提交的目录清单中了。
和git相关的一些命令:
- 创建一个版本库:git init
- 查看状态:git status
- 添加文件到本地:git add [文件名] *不跟文件名则默认全部添加
- 提交:git commit
- 查看所有分支:git branch -a
- 查看本地所有分支:git branch -r
- 提交并且添加注释:git commit -am "[注释内容]"
- 本地文件与服务器同步:git pull
- 将文件上传服务器:git push origin master
*注意一定要先pull再push,否则会覆盖别人上传的代码
- 管理分支: git branch
- 查看所有分支:git branch -a
- 查看本地所有分支:git branch -r
- 创建分支:git checkout [分支名] $ git checkout [分支名] *创建自己的分支并且将以后的工作转移到这个分支上开展
或者可以使用 git checkout -b robin [start_point] *其中start_point 是一个可选参数,指定新建分支是基于那个节点,默认为当前所在的节点
- 删除分支:git branch -d(-D) *但是需要注意的是,如果删除的分支还没有被 merge 到其他分支,删除这样的分支会导致这个分支上所做的改动丢失,因此 git branch -d 命令会失败,提示你这样做会丢失信息。如果你的确想删除这样的分支,不怕信息丢失,那么可以使用 git branch -D 命令,这个命令不会去判断分支的merge状态
- 合并两个分支:git merge
- 逆转与恢复:git reset