Git 命令/配置笔记

创建分支命令 git branch 分支名
切换分支命令 git checkout 分支名
合并分支(到当前分支) git merge
列出本地分支 git branch
删除分支 git branch -d 分支名
指定标签信息命令 git tag -a -m “runoob.com标签”
PGP签名标签命令 git tag -s -m “runoob.com标签”
查看当前配置有哪些远程仓库 git remote
还可以看到每个别名的实际链接地址 git remote -v
git 基本操作:https://www.cnblogs.com/llstart-new0201/p/11718159.html
开发机提交–部署-测试-线上
“git remote分支”
origin/master
origin/deploy_inop_tv_20180228
origin/deploy_inop_pc_20171011
origin/deploy_inop_mobile_20170913
// 报警邮件脚本 git 路径:
search_and_rec/shared/common/lib/python/sendmail.py
// 邮件报警
search_and_rec/recommendation/tools/inop_alert_mail.py
// 国语,粤语等去重
search_and_rec/recommendation/offline/noopsyche_carousel/python/regular_filter.py

查看是否安装了git
$ git
将文件添加到git repository下,
将文件添加到git库,可反复多次使用,添加多个文件
$ git add
$ git commit -m “xxx” 添加描述
查看仓库当前的状态,会显示当前哪个文件被修改了
$ git status
看具体修改了什么内容
$ git diff
显示从最近到最远的提交日志
$ git log
git review
$ git log --pretty=oneline精简显示
提交修改后文件的描述
$ git commit -m “xx”
git reset --hard origin/master git pull 和git上一样
git diff HEAD – 文件名,来查看工作区与版本库文件的区别
要撤销提交add:
git reset HEAD
要从从版本库恢复文件:
git checkout —
对某一次 commit 撤回 并删除更新
git reset --hard commit_id
不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
git reset --mixed HEAD^ 和 git reset HEAD^
不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
进行了2次commit,想都撤回,可以使用HEAD~2
如果commit注释写错了,只是想改一下注释
git commit --amend
强制覆盖本地
git fetch --all && git reset --hard origin/master && git pull
更新拉回本地
git fetch --all
常用git stash 命令
(1)git stash save ‘save message’ :执行存储时,添加备注,方便查找,只有git stash 也可以的,但查找时不方便识别。
(2)git stash list:查看stash了哪些存储。
(3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存储,后面加的stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲,比如第二个git stash…num} -p ,比如第二个:git stash show stash@{i} -p
(5)git stash apply:应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{o} ,如果要使用其他,git stash apply stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲ ,比如第二个:git sta…num} ,比如应用并删除第二个:git stash pop stash@{1}
(7)git stash drop stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲ :丢弃stash@{num}存储,从列表中删除这个存储
(8)git stash clear:删除所有缓存的stash

ERROR: missing Change-Id in commit message footer
==》gitdir=$(git rev-parse --git-dir); scp -p -P 29418 [email protected]:hooks/commit-msg KaTeX parse error: Expected 'EOF', got '&' at position 358: …r = !git fetch &̲& git rebase …(git rev-parse --git-dir); scp -p -P 29418 [email protected]:hooks/commit-msg ${gitdir}/hooks/,其中xxxi和29418这部分,根据自己的git clone地址替换
现在可以在本地愉快的写代码了。git的各种命令,pull,push,checkout,commit, status, branch等请自行学习
本地修改完毕后,需要先进行本地git commit。再使用git review进行review提交。在项目owner review完代码并submit后,自动并入主线。
请注意绝对不要将binary提交进git,这个对于git性能影响极大。
补充
一、请使用git fr(fr = !git fetch && git rebase origin/master)更新代码, 不要用pull!不要用pull!不要用pull(重要的事情说三遍, 忘记pull这个命令吧)
原因:git pull比rebase更容易产生conflict;pull之后还会会生成一些Merge “xxx” 的不需要的commit;你要提交代码,pull之后还是得rebase。
请把alias sp改成sp = !git stash && git fetch && git rebase origin/master && git stash pop
二、在给别人过代码的时候,先rebase再submit(如果出现rebase按钮的话),先rebase再submit,先rebase再submit(重要的事情说三遍) 原因:直接submit可能会导致多出一个merge xxx的commit到origin/master上面,而且author是submitter,而不是提review的同学。。
三、复合命令中间失败的话,是会中断执行的,所以要注意看执行输出,如果中断了要把剩下的操作手动再执行完。 例如执行了git sp, rebase冲突了,stash pop还没有被执行,你的代码还在stash里面哦(不要说代码怎么不见了。。。) 例如执行了git stash pop(= git stash apply && git stash drop)冲突了,drop就不会执行
四、学会使用git reflog, reflog记录了所有你在local repository的操作(ca, ci, rebase等等),你可以用reset回退到任一操作之前的状态。
五、经常commit代码(ci, ca, ca, ca…), commit过的代码不会丢(除非你把整个git目录删了),ca过都有reflog记录, 可以方便回滚和做diff。
六、git ca之前,请用git log确认一下最上面的那个是你的commit(如果你误用了pull,又没有rebase,上面可能是别的)

你可能感兴趣的:(Git 命令/配置笔记)