git使用

来源:互联网 发布:淘宝金冠店多少 编辑:程序博客网 时间:2024/05/29 05:11
1.查看某个文件的修改记录:git blame或者 git log
git log --pretty=oneline packaging/opengl-es-mali-midgard.spec  
git show 2998bf4ac8ff13e6e6ecc61336626e126cae75aa
2.git  remote -v
3.git stash,git stash apply,git stash pop,git stash list
0.git commit --amend 修改最后一次提交的信息,在出来的编辑界面,直接编辑注释信息
1.git fetch 更新本地代码到最新版本(需要merge才能合到本地代码中)   
  git merge 合并更新后的代码到本地    
2.git pull:更新代码方式的另一种方法(git pull是git fetch和git merge命令的一个组合) 
3.git diff --cached 修改代码后,查看已修改的内容 
4.git commit -m 'this is memo'    git commit -a -m 'this is memo'
  如果想省掉提交之前的 git add 命令,可以直接用git commit -a -m 'this is memo'  
  commit和commit -a的区别, commit -a相当于:  
  •  第一步:自动地add所有改动的代码,使得所有的开发代码都列于index  file中  
  •  第二步:自动地删除那些在index file中但不在工作树中的文件 
  •  第三步:执行commit命令来提交  
  git push origin master
5.git log:显示commit日志 
  git log --stat:显示更多内容   
  git log -p :不仅显示commit日志,而且同时显示每次commit的代码改变。 
  git log --grep="tizen"  
  git log --author=Andy
6.git reset --hard  销毁自己的修改 
7.git diff HEAD HEAD^ 查看最新版本和上一个版本的差异(一个^表示向前推进一个版本)
  git status查看修改
  
8.回滚代码:  git revert HEAD  你也可以revert更早的commit,例如:  git revert HEAD^ 
9.git pull 从git服务器取出,并且和本地修改merge, 类似于SVN up,但是对删除的文件不管用,恢复删除文件用  git checkout -f 
10. 分支操作
查看分支:$ git branch
创建分支:$ git branch 分支名称 (注意:请不要在服务端建立分支)
切换分支:$ git checkout 分支名称
删除分支:$ git branch -d 分支名称
查看版本发展记录:git show-branch  
git whatchanged 
git checkout -b tztv_2.2 origin/tztv_2.2
11. git push origin HEAD:refs/for/tztv_2.2
12. git status
13. git commit --amend 上一次提交时的comment
14.提交代码到gerrit 
scp -p -P 29418 singleID@165.213.149.219 :hooks/commit-msg .git/hooks/
注意,scp是在git clone后才需要做的,以后如果没有再clone代码到本地,不需要做 
git add 添加要上传的文件
git commit . 注意点号表示当前文件夹下,回车后要求我们输入此次代码提交的log,自己按照动宾格式写代码修改的原因即可,wq保存退出
git push origin HEAD:refs/for/master  确认提交到gerrit上
在gerrit主页上标红的位置出现提交的代码时,表示提交成功
15.Upload patch
如果刚才提交的代码有人提出了修改意见,我们在原有基础上修改好之后,执行下面步骤,来提交patch: 
git add (modified files name)
git commit --amend 确认此log的id是否和刚才的id一致
git push origin HEAD:refs/changes/changeID (在patch页面标红位置可以查到changeID)
16.git reset --hard
让代码回到初始就是改之前的版本--不保存修改
git reset 20b2d80e02eed1dd4a43d1c38f9319491c64b2e7 --hard
17.git stash save "version 1"  保存修改,然后回到HEAD
   git stash list 显示所有保存的目录
   git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来
   git stash pop
   git stash clear 清空
18.git log --oneline --graph
19.停止追踪一个文件:git rm --cached FILENAME
当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用git rm
当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用git rm --cached FILENAME
20.生成patch
git diff > 1.patch :这样生成的patch只能应用于git apply
git format-patch -1 (git format-patch HEAD^):将一个commit生成patch
git am 0001-limit-log-function.patch:应用一个patch,自动生成commit
(使用git-am之前, 你要首先git am –abort 一次,来放弃掉以前的am信息,这样才可以进行一次全新的am。
不然会遇到这样的错误。.git/rebase-apply still exists but mbox given.)
21.rebase
-sudo git rebase -i HEAD~2  (压缩两个commit,上面pick下面squash,把squash压到pick)
-git rebase + branch/commit id/origin  (适用于branch之间)
把另外一个分支上的内容拖下来与本地合并,会生成新的commit,参考:http://blog.chinaunix.net/uid-27714502-id-3436696.html   
22.git pull --rebase   (适用于同一branch内)
适用于本地分支基于老的commit,远端commit已经更新。然后重新把远端的最近commit作为此次commit的base           
23.
如果之前提交的代码还没有被merge,新的代码又依赖于上一个patch,此时需要将之前patch上的代码pull下来,使用如下命令: 

git pull ssh://ID@ip:port/<fullname of your project> refs/changes/changeID/patchID

24.

1)提交代码     git config --global core.editor vim
git add .
git commit -a -s
git push origin HEAD:refs/for/r5p0
push完了会出现错误,说是没有changeid,把错误信息里面的changeid整个拷贝下,然后执行 git commit --amend,把刚才的changeid粘贴进去,然后再用上面的push命令push
Change-Id: I2133919bb20b6c68a671be6c8d7baea5c4fb8915 要放在后面
2)打patch
git add .
git commit --amend -s
sudo git push origin HEAD:refs/changes/98427
3)rebase
sudo git rebase -i HEAD~2  (压缩两个commit,上面pick下面squash,把squash压到pick)