git 版本库的奇技淫巧

前言

git版本控制软件在软件开发中的持续集成过程中有着非常重要的地位,可以很方便的帮助企业管理软件版本。

git配置别名

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.st status

.gitconfig配置别名

[diff]
tool = bc4
[difftool]
prompt = false
[difftool "bc4"]
cmd = "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
[merge]
tool = bc
[mergetool]
prompt = false
[mergetool "bc4"]
cmd = "\"c:/program files (x86)/beyond compare 4/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

常用git命令

git fetch origin — 与服务器交互,从服务器上下载最新代码。相当于从远程获取最新版本到本地,不会自动merge,比Git pull更安全些。

git rebase origin/master — 将服务器最新内容合并到本地时使用

git pull –rebase = git fetch origin + git rebase origin/master

git push origin master ------- 慎用!将文件push进repo,这种是不经过code review过程,直接进入authentication repository。

git push origin HEAD:refs/drafts/master // 等同于git push review (alias for refs/drafts/master) , ------- 将文件push进gerrit,会产生链接,走code review流程

查看远程仓库对应的URL

git remote -v

查看git的配置信息

git config --global -l
git config --list

查看当前分支最后一次提交的hash

git branch -v

清理untrack的文件

git clean -nfd //f:fource , d: directories and files n: show what would be done

删除generate的文件和untrack的文件

rm -rf `git ls-files -o`

查看远程分支最新hash

git ls-remote | grep develop/4.x

查看所有branch的分支

git branch -a

查看两个commit有冲突的地方

git am --show-current-patch

处理文件冲突

#在cherry pick的时候通常会遇到merge conflict,解决办法
git mergetool --tool=bc3 //do "module add bcompare" if prompt no bc3

#second method
git checkout --conflict=diff3 <fileName> 

查看工作区的改动和缓存区的改动

git diff //查看工作区的改动
git show +hash //缓存区的改动
git show --stat   //以统计的方式显示缓存区改动

检查更改文件行末的空格

git diff --check

查看提交历史

#每个提交在一行内显示
git log --oneline

#在所有提交中搜索[homepage]的提交
git log --all --grep='homepage'

#获取某人的提交日志
git log --author="Alex Guo"

有多个提交,想要回滚

#获取所有提交历史
git reflog
#--soft: 重置commit,但保留add文件
git reset --soft 
#--mixed: 重置到相应的提交, 回到add之前
git reset HEAD@{2}
#--hard: 重置commit,并且丢弃add文件
#......OR......
git reset --hard <hash>  //default method

定制提交

#编辑上次的提交
git commit --amend -m "更好的提交日志"
#新加提交文件,日志保持不变
git add . && git commit --amend --no-edit
#空提交:用来重新触发CI构建
git commit --allow-empty -m "chore: re-trigger build"

团队协同开发提交命令

#先提交自己的更改
git add -u
git ci --amend
#用git pull --rebase 命令合并新的patch
git pull --rebase ssh://zguoxue@gerrit.testrepo.test:29418/wrat/wrat refs/changes/59/7130659/2
#如果有冲突,用mergetool解决冲突
git mergetool --tool = bc3
#rebase完成之后,会自动生成一个commit,这个commit是不需要的,所以需要回滚commit
git reset --soft HEAD^1
#再次重新提交自己的更改
git commit --amend
#最后检查没有问题,push
git push review
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值