git 使用

git环境设定

(1)登陆gerrit server
(2)登陆build server,在build server中(cd ~)
      执行 ssh-keygen -t rsa,取得ssh key(命令执行中直接按回车继续)
      执行 cat .ssh/id_rsa.pub,复制ssh key。
      注:每次重新生成的ssh key不相同。
(3)在gerrit server上添加build server的ssh key,设定通信权限(用户名下拉菜单--Settings--SSH Public Keys--Add Key,复制ssh key到窗口中)。
(4)build server中执行
      ssh -p 29418 hcgit #测试连接,ssh -p 29418 hcgit03
      git config --global user.email you@example.com
      git config --global user.name "Your Name"

常用命令

git bash复制快捷键为:Ctrl+Insert 粘贴快捷键为:Shift+Insert
push到同个commit:
法1. git push origin HEAD:refs/changes/[changeid]
法2. git commit --amend
       添加:Change-Id: xxx
       git push origin HEAD:refs/for/master

git status
git add xxx.c xxx.h
git commit / --no-verify / --amend
git push origin HEAD:refs/for/master


过滤git log的提交历史合http://blog.csdn.net/ly890700/article/details/52787257
git log -- xxx.c #查看修改过该文件的commit id
git log -S "Hello, World!"  #按内容,查看增加Hello, World!的commit id
git checkout -b <new_branch> <branch>  #基于branch创建新的new_branch
git log -- author="author_name”
git checkout -- file #丢弃工作区的修改
git diff xxx.c
git diff --cached
git config --global core.editor vim
git reset
git reset --hard commit_id

repo forall -c "git config core.filemode false" #忽略file mode变化
repo forall -c "git config core.filemode true" #不忽略file mode变化

repo forall -c 'git checkout tag_name' #切到某个tag

git add -A   #将工作区delete, add和modify的所有文件加到暂存区stage
git add file  #将file加到stage
git reset HEAD file  #把文件从stage拿掉
git commit -n          #忽略文件格式(如换行或空格)等问题

git reset --soft HEAD~  #撤销commit
git reset --hard HEAD~ #撤销全部修改(工作区,stage,commit)

原文地址:https://www.cnblogs.com/sunnycindy/p/9485748.html