常用Git命令
1 常用流程
初始化本地repo;
针对每个优化版本,修改的散点及时add,并随时 git diff --cached;
验证一个feature OK后git commit -m “message”;
git init
git status #列出未跟踪的文件、已修改的文件、已暂存的文件
git add --all
git commit -m "message"
备注:
- git文件的四种状态,可参考这里 ;
- commit规范:可安装vscode插件git-commit-plugin,参考这里;
- git add 时指定忽略中间权重、log等文件:新建 .gitignore,在其中添加指定要忽略的文件夹和文件,支持模糊匹配,可参考这里;
2 差异比较
git diff --cached # 比较暂存区和最新版本库的增删改
git diff HEAD # 比较工作区+暂存区 和 最新版本库的增删改
git diff HEAD^ HEAD <--stat> # 比较从HEAD^ -> HEAD的变换【其他hash值同理】
git diff hash1 hash2 <--stat>
备注:
- 后面均可以指定具体文件;
- git diff 只能比较共同文件,且有两种情况,容易混淆,故暂不用;
- git diff 详细用法,可参考这里;
3 版本、分支、标签、撤销和修改
### 版本
git log <--pretty=oneline>
git reflog # 可看全部操作
git reset --hard commit_id 或则是 git reset --hard HEAD~n #版本回退
### 分支(查看、创建、切换、合并、删除)
git branch #查看所有分支
git branch dev #创建分支
git checkout dev 或者 git switch dev
git merge dev #把dev分支合并到当前分支 【可能需要解决冲突,解决后还需要add和commit】
git merge --no-ff -m "merge with no-ff" dev #不用fast-forward,保留合并历史,然后再删除dev分支
git branch -d dev #删除分支
### 标签
git tag #查看所有标签
git tag tagname <commit-id> #指定某个版本打标签
git tag -a v0.1 -m "version 0.1 released" 1094adb #指定某个版本打标签时、附加message
git show <tagname> #查看指定版本
git tag -d v0.1 #删除v0.1标签
### 撤销修改(下面假设已经add之后,需要分两步撤销)
git reset HEAD <file> #撤销暂存区的修改
git checkout -- <file> #撤销工作区的修改
### 删除文件
git rm test.py # 删除暂存区或分支上的文件, 本地也不再需要
git rm --cached test.py # 删除暂存区或分支上的文件, 但本地又需要使用
4 上传
上传本地文件、文件夹到Github,可参考这里 ;