分类: LINUX
2013-04-12 10:53:59
$ touch Test2.scala
$ git add Test2.scala
$ git commit
$ git log #在push之前确认commit是否正确
$ git push
5.从远程git库克隆指定的分支,这次在B机器的/home/le/workspace/git/repo2/目录重新克隆一份代码
$ git clone -b scala_dev
$ git branch #查看当前分支
#提交新的代码
$ touch Test3.scala
$ git add Test3.scala
$ git commit
$ git log #在push之前确认commit是否正确
$ git push
6.回到/home/le/workspace/git/repo2/更新代码
$ git pull #如果有错误,请按照错误提示修改.git/config文件
$ git reset --soft HEAD^1
$ git commit --amend
$ git rebase -i HEAD~n
#替换第n个pick为s保存
2.取消本地的commit
有时候commit了代码到了本地git库中,之后某种原因想删掉最后1条commit,可以直接恢复到之前的commit
$git reset --hard HEAD~1
3.使用git stash
如果你跟我一样也使用gerrit做code review,那么有可能遇到这样问题:
$ git stash
# modify your code or checkout to another branch
# git commit --amend
$ git stash pop
4.从另外一个分支里面挑选一些commit到当前分支
假如你有两个分支,一个是dev分支,一个是release分支,在dev分支上已经有很了很多的commit,有时需要从dev分支上挑选一些commit到release分支上。
$ git log #查找到需要的commit id, 假设为5b531cb8c62cdb8b5f10c406e41824a6388e3a82
$ git checkout release
$ git log #看一下当前的commit log
$ git cherry-pick 5b531cb8c62cdb8b5f10c406e41824a6388e3a82
$ git log #此时可以看到commit log增加了
5. 出现error: The following untracked working tree files would be overwritten by checkout
$ git clean -d -fx ""
6.我一次commit 5个文件到gerrit上面,然后发现有一个不需要提交,只要提交4个就好,我想重新提交一次在同一个commit ID下面,我该怎么做?
前提代码还没有被merge进库
例如要取消文件2.txt, 那么先恢复2.txt到commit id 9a42e8e3f41dcf5029a11ce651f36cbdf37fc84d,你提交之前的那一个commit id
git reset 9a42e8e3f41dcf5029a11ce651f36cbdf37fc84d -- 2.txt
git checkout -- 2.txt
git add .
git commit --amend
C.一些参考资料
[中文译文版本]
[这个很好玩]
转自: