git常用命令

常用操作
  • git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | awk ‘{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf “added lines: %s removed lines : %s total lines: %s\n”,add,subs,loc }’ #git统计的提交代码的数量

  • git remote -v #查看远程分支

  • git config --global user.name “name” #配置用户信息(去掉后面的名字是查询信息)

  • git config --global user.email “email”

  • git pull #拉取分支上的内容

  • git status #修改的文件

  • git diff #更改的具体内容(+ 代表新加,- 代表删除)

  • git blame #查看该文件的提交记录

  • git add #添加某一个文件

  • git add . #添加所有文件

  • git commit -m #提交到本地代码库

  • git commit -s #添加了Signed-off-by( 有的项目中需要进行CI 校验)

  • git commit --amend #修改最新一条提交信息的 log 内容

  • git push origin #提交到远程分支

  • git push origin dev:dev #推送本地的dev(冒号前面的)分支到远程origin的dev(冒号后面的)分支(没有会自动创建)

  • git checkout – #当你在工作区修改想要丢弃时(撤销修改内容)

  • git reset HEAD (不加HEAD,直接输入commitId可以保存当前修改) #add到暂存区想要撤销修改时

  • git reset --hard HEAD~10 #commit到本地版本库以后想要回退(~后面是要回退的commit数)

  • git reset --soft HEAD #合并commit时使用

  • git branch -a #查看当前有那些分支

  • git branch -vv #可以查看所在的分支,比如stable或者dev

  • git branch -t stable(远程分支名) #-t是追踪远程分支

  • git branch -d #删除本地分支

  • git checkout -b -t stable(远程分支名) #创建一个分支并切换到stable分支

  • git cherry-pick #切换到提交的id并保留你的修改

  • git log #查看其中一条记录

  • git log --graph #可以看到分支合并图

  • git merge 操作合并分支会让两个分支的每一次提交都按照提交时间(并不是push时间)排序,并且会将两个分支的最新一次commit点进行合并成一个新的commit,最终的分支树呈现非整条线性直线的形式

  • git rebase 操作实际上是将当前执行rebase分支的所有基于原分支提交点之后的commit打散成一个一个的patch,并重新生成一个新的commit hash值,再次基于原分支目前最新的commit点上进行提交,并不根据两个分支上实际的每次提交的时间点排序,rebase完成后,切到基分支进行合并另一个分支时也不会生成一个新的commit点,可以保持整个分支树的完美线性

另外值得一提的是,当我们开发一个功能时,可能会在本地有无数次commit,而你实际上在你的master分支上只想显示每一个功能测试完成后的一次完整提交记录就好了,其他的提交记录并不想将来全部保留在你的master分支上,那么rebase将会是一个好的选择,他可以在rebase时将本地多次的commit合并成一个commit,还可以修改commit的描述等。

遇到问题
git提交代码时出现错误:error : unpack failed : error Missing commit XXX,XXX代表提交的版本号。
原因:本地索引出错。
解决方法:
1. git gc
2. git pull --rebase(过程中遇到冲突需要先解决冲突,再git add .)
3. git push  (gerrit上直接repo upload .就行)
如果只想提交一部分文件就用stash
git add file01.txt
git stash    #隐藏其他修改,存入暂存区
git commit -s
git stash pop  #恢复的同时把stash内容也删了   
           #也可以用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
           
#出现问题参考  https://www.jianshu.com/p/efb9f2f1bd05
拉取代码的方式:
git stash 把本地代码暂存起来
git pull  再拉取
git stash pop 把暂存的代码合并到本地分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值