学习git大约有两个星期了,脑子里总算有点干货了,可以拿出来总结一下:
git,用于版本控制的,刚开始觉得它是linux下默认的命令,其实也是个工具需要apt-get install git 安装一下。
里面有很多命令,我也只会一些常用的,其他的大家需要git --help查看一级参数,然后git 参数1 --help基本可以查看所有你想用的命令了,通常我就是这么学习的,虽然是英文但是不妨碍看呢。
git log 查看本分支下最近提交日志。
git branch 查看本分支所在分支,以及列出所有分支。
git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
git branch -d | -D branchname 删除branchname分支 ,注意:-d和-D有区别具体看帮助信息
git branch -d -r branchname 删除远程branchname分支
git add 将修改的内容添加到所在分支的仓库中
git checkout
git checkout 分支A 切换到分支A
git checkout -b 分支B 新建分支B并切换到分支B
git checkout -f 移除修改的文件,当git fetch出现冲突后,用的比较多
git pull 更新到最近的分支(一般在master分支上做)
git rebase master 使master分支最新的东东加到当前所在的分支上,配合git pull使用
git diff 使更改后的文件与原来的做diff,显示出差异
git diff --cached 当你git add 更改的文件了,但是还没有commit 这个时候该命令可以查看新旧文件的差异
git show 显示提交后, 显示diff 出文件的差异
git stash 暂时保存为提交的东西,不然虽然你git add了,但是你无法切换分支,然后用git statsh apply id号来还原
未完待续……
写累了上张图精神精神,嘻嘻……
git push 失败的解决办法
假设执行操作:
1. 修改代码
2. git commit
3. git push
a, 此时 push 失败(错误提示:! [rejected] master -> master (non-fast-forward) )
解决办法:
$ git pull
若成功,则:
$ git push origin master:your-id
b, 若出现:error: unpack failed: error Missing tree 30c4809ade0b4b0c81cb7f882450774862b82361
解决办法:
Pushing with --no-thin
argument works as a workaround for me
如:git push --no-thin omnigerrit HEAD:refs/for/android-4.4
这个问题发上原因如下:(你可以git push --help查看一下)
This happened to me when trying to push a new patch set to an existing review where the only change was in the commit message. Making a small change in one of the files and pushing that was successful as a work-around for me
原文:http://www.cnblogs.com/codeblock/p/4684515.html