![](https://i-blog.csdnimg.cn/blog_migrate/6c71edaeded77a96f079599845e08f38.png)
注:
工作区:本地目录中的文件(除隐藏目录.git)
版本库:即隐藏目录.git,含暂存区,第一分支master,指向master的指针HEA
常用git命令
鼠标右键,选择GitBash
git config --glabal user.name "wcc" %对仓库指定用户名%
git config --glabal user.email "...qq.com" %对仓库指定邮箱%
git config --list %显示当前Git配置%
git init %将当前目录创建为Git仓库%
git init [project_name] %新建目录[project_name],并初始化为仓库%
git add test.txt %将文件test.txt添加到暂存区%
git commit -m "注释" %将修改提交到仓库,并附上注释%
git commit -a %提交所有修改%
git commit -v %提交时显示diff信息%
git commit --amend %重做上一次commit,若无变化,则用于改写上一次commit信息%
git status %查看是否还有未提交的文件%
git diff test.txt %查看文件test.txt修改的内容%
git log %查看文件修改的历史记录%
git reset --hard HEAD^ %将仓库内的文件回退到上一版本%
git reset --hard HEAD^^ %将仓库内的文件回退到前2个版本,^的个数代表回退的版本数%
git reset --hard HEAD~~100 %将仓库内的文件回退到上100个版本%
git reset --hard xxx %将仓库内的文件回退到版本号为xxx的版本%
git reflog %查看版本号%
cat test.txt %查看文件内容%
git checkout --test.txt
%放弃工作区内对文件test.txt的修改
%若修改没有放到暂存区,则可成功撤销修改,否则无法撤销
rm test.txt
%删除文件test.txt,也可以直接在目录中删除该文件
%删除文件后,commit提交修改
%若未commit,则可以checkout恢复该文件
git rm test.txt %删除该文件,并将修改放入暂存区%
git rm --cache test.txt %停止追踪该文件,但该文件扔保留在工作区%
git mv test.txt wcc.txt %将文件test.txt改名为wcc.txt,并将修改放入暂存区%
git clone [URL] %下载一个项目及代码历史%
git pull %更新,下载代码并合并,等同于fetch + merger%
git push %上传代码并合并%
Commit message格式
message | 含义 |
feat | 增加新功能 |
fix | 修复bug |
docs | 文档注释 |
style | 代码格式(不影响运行的变动) |
refactor | 重构、优化(不加新功能,不修改bug) |
perf | 性能优化 |
test | 增加测试 |
chore | 构建过程或辅助工具的变动 |
revert | 回退 |
build | 打包 |
解决合并冲突
提交代码应该pull——commit——push
策略一:卸载整个项目,并重新拉取项目
git clone [URL]
策略二:回退到指定版本,再pull—commit—push
①查看本地历史版本
$ git log %按“q”可退出log
②找到要回退的版本号后,右键复制
③回退
$ git reset --hard xxx
④重新提交
$ git pull
$ git commit
$ git push
Pull失败
因为产生了合并冲突,自己和别人修改了同一份文件
①将自己的代码复制拷贝一份,即复制到txt文件中
②撤销自己的修改
③重新pull拉取代码
④重新修改,或用自己的代码覆盖新代码,比较后,选择性保留修改。
部分提交
先将工作区的部分文件add到暂存区,再commit到本地仓库,最后push到远程仓库。