以前公司版本控制工具用的都是svn,没有接触过git,现在这家公司用的是git,都是敲命令,不过敲命令的感觉挺爽的。用了一段时间git的分支功能很强大,比如一个小团队中的几个人要做某个功能模块,则可以在master主分支上新建一个模块分支(比如user),然后负者这个模块中的几个人可以在user分支新建基于自己的个人开发分支,每个人开发完后,然后merge到user分支,再merge到master主分支,这样能减少开发中代码的冲突次数,提高开发效率。
克隆分支
1. clone远程分支到本地,在本地主机生成一个目录,与远程主机的版本库同名。
git clone https://github.com/jquery/jquery.git
2. clone远程分支到本地,制定本地目录名。
git clone <版本库的网址> <本地目录名>
创建及删除分支
1. 查看分支
git branch
2. 创建新分支
git branch <新分支名>
然后push代码到分支
git push --set-upstream origin <分支名>
3. 切换分支
git checkout <分支名>
4. 删除本地分支
git branch -d <分支名>
强制删除分支
git branch -D <分支名>
5. 删除远程分支
git push origin :<分支名>
提交修改文件到远程分支
1. 查看工作目录中的文件与缓存的状态
git status
2. 添加工作目录中的文件到缓存中
git add <文件名>
或者添加所有
git add .
3. 提交工作目录中的文件到缓存中
git commit -m '本次提交说明信息'
4. 显示已写入缓存与已修改但尚未写入缓存的改动的区别
git diff <文件名>
5. 尚未缓存的改动
git diff
6. 查看已缓存的改动
git diff --cached
7. 查看已缓存的与未缓存的所有改动
git diff HEAD
8. 取消缓存已缓存的内容
git reset HEAD
9. 将文件从缓存区移除,同时删除文件
git rm <文件名>
版本回滚
1. 回滚版本根据commitid
git reset --hard <commit_id>
git push origin HEAD --force
2. 回滚到上一版本
git reset --hard HEAD~1
git push origin HEAD --force
或者第n个版本
git reset --hard HEAD~n
git push origin HEAD --force
git merge碰到冲突,取消merge
1. 取消merge
git merge --abort
合并多个commit
1. git压缩
git rebase -i HEAD~2
2. 要合并的commit的pick改为squash(第二行)
pick 5e187c7dbe8 add center style indent pick 6d577eb3440 add center style
3. 同步到远程分支
git push -f
4.压缩有冲突的话,取消合并
git rebase --abort
提交内容到最后一个commit
1. 提交修改
git commit --amend
2.强制提交
git push -f
初始化本地项目推送到远程新建的git项目
echo "# dubbo-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/renhuijun/dubbo-test.git
git push -u origin master