整理一下经常忘记的Git命令
1 2 3 4 | $ git remote -v // 查看当前远程版本库 $ git remote add cocos2d-x git://github.com/cocos2d/cocos2d-x.git // 添加原始版本库 $ git fetch cocos2d-x // 获取原始版本库的更新 $ git merge cocos2d-x/master // 合并原始版本库的代码到当前版本库中,合并前确保当前分支是master |
---|
1 2 3 4 5 6 | $ git branch -a //查看所有分支 $ git checkout -b branches/xxx origin/branches/xxx //chekcout远程分支 $ git push origin --delete <branchname> //删除远程分支 $ git push origin --delete tag <tagname> //删除远程tag $ git push origin :<branchName> //推送一个空分支到远程分支,相当于删除分支 $ git push origin :refs/tags/<tagName> //推送一个空tag到远程,相当于删除tag |
---|
假设这样一种情况:
1 | git fetch -p //在fetch之后删除掉没有与远程分支对应的本地分支 |
---|
在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
1 2 3 | $ git push --delete origin devel //删除远程分支 $ git branch -m devel develop //重命名本地分支 $ git push origin develop //推送本地分支 |
---|
1 | $ git push --tags |
---|
1 | $ git fetch origin tag <tagname> |
---|
branches/A 上修改了一个文件A.h,新增了一个文件B.h,删除了一个文件C.h。
1 2 3 4 5 6 7 | $ git checkout master //首先切换到master分支 $ git checkout -p branches/A A.h //不切换branch,把RemLanbranches/A上的A.h更新到当前分支 $ git checkout branches/A B.h //去掉-p参数,新增该B.h文件 $ rm C.h //删除文件目前还没找到其他办法,但效果是一样的 |
---|
参考:http://git-scm.com/docs/git-rebase
只显示两个分支间的差异,如果你想找出‘master’,‘test’的共有 父分支和’test’分支之间的差异,你用3个‘.‘来取代前面的两个’.‘ 。
1 | $ git diff master..test |
---|
显示你当前的索引和上次提交间的差异;这些内容在不带”-a”参数运行 “git commit”命令时就会被提交。
1 | $ git diff --cached |
---|
显示你工作目录与上次提交时之间的所有差别,这条命令所显示的 内容都会在执行”git commit -a”命令时被提交。
1 | $ git diff HEAD |
---|
如果你要查看当前的工作目录与另外一个分支的差别,你可以用下面的命令执行: 这会显示你当前工作目录与另外一个叫’test’分支的差别。你也以加上路径限定符,来只 比较某一个文件或目录。
1 | $ git diff test |
---|
显示你当前工作目录下的lib目录与上次提交之间的差别(或者更准确的 说是在当前分支)。
1 | $ git diff HEAD -- ./lib |
---|
如果不是查看每个文件的详细差别,而是统计一下有哪些文件被改动,有多少行被改 动,就可以使用‘—stat’ 参数。
1 | $ git diff --stat |
---|