参考:https://www.cnblogs.com/qianqiannian/p/6010219.html
列出一些比较常用的指令
1.查看 当前分支的状态有哪些文件修改了添加了哪些文件
哪些文件使用过add 哪些文件不需要使用add就可commit,哪些文件需要使用add后才能commit
git status
2.分支切换
git checkout
- 这种是比较 工作区和暂存区(当暂存区没有数据的时候比较本分支)
git diff
git diff filename
4.比较暂存区和本分支
git diff --staged
5.本地撤销commit(撤销到add之后)
HEAD指向的是版本库中的当前版本
git reset --soft HEAD^
6.比较 YYY在XXX上增减了什么
XXX 和YYY 可以是origin/master master dev(分支名)
git diff XXX YYY
7.如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD
8.就是对某个文件进行add撤销了
git reset HEAD XXX/XXX/XXX.c
9.撤销工作空间的修改内容(某个文件)
git checkout -- "pdk_packages/ipmipdk_dev-3.48.0-src/data/PDKHooks.h"
10.将dev中的改动merge到当前分支的暂存区和工作空间中(随后可以使用commit)
git merge -squash <dev>
11.撤销merge
git reset --hard HEAD
12.撤销master 的commit
git reset --hard HEAD^
- 比较两个commit-id之间的差异
git diff 【commit-id】 【commit-id】
14.删除本地分支:
git branch -d dev20181018
如果删除不了可以强制删除
git branch -D dev20181018
使用git diff打补丁
git diff > patch //patch的命名是随意的,不加其他参数时作用是当我们希望将我们本仓库工作区的修改拷贝一份到其他机器上使用,但是修改的文件比较多,拷贝量比较大,
此时我们可以将修改的代码做成补丁,之后在其他机器上对应目录下使用 git apply patch 将补丁打上即可
git diff --cached > patch //是将我们暂存区与版本库的差异做成补丁
git diff --HEAD > patch //是将工作区与版本库的差异做成补丁
git diff Testfile > patch//将单个文件做成一个单独的补丁
拉远端的分支
先把远端的master拉下来,
然后通过git branch -a查看所有分支
然后把远端的分支KuaiShou拉到本地叫KuaiShou1
git fetch origin KuaiShou:KuaiShou1
或则:命令格式如上,-b后面接分支名,最后是git地址。
git clone -b KuaiShou "ssh://ies191867@10.99.100.208:29418/AS60G1_STANDARD" && scp -p -P 29418 ies191867@10.99.100.208:hooks/commit-msg "AS60G1_STANDARD/.git/hooks/"
拓展:git apply patch 应用补丁,应用补丁之前我们可以先检验一下补丁能否应用,git apply --check patch 如果没有任何输出,那么表示可以顺利接受这个补丁
另外可以使用git apply --reject patch将能打的补丁先打上,有冲突的会生成.rej文件,此时可以找到这些文件进行手动打补丁