一、工作机制
工作区 → `git add` → 暂存区 → `git commit` → 本地仓库 → `git push` → 远程仓库
git checkout:撤销工作区的修改(还没有暂存)
git reset HEAD:暂存区退回到工作区
git reset --soft HEAD~1:撤销最后一次提交
1、初始化本地库
git init
2、克隆远程仓库(自动完成初始化git init)
git clone 远程仓库URL
3、查看状态
检查文件修改状态(红色:未跟踪/修改。绿色:已暂存)
git status
4、添加文件到暂存区
git add 文件名 //添加特定文件
git . //添加所有改动
5、提交到本地仓库
提交到暂存区,并附加描述
git commit -m "提交描述"
提交所有已跟踪文件的修改(跳过 git add)
git commit -a -m "提交描述"
6、推送到远程仓库
首次推送(需关联分支)
git push -u origin <分支名>
后续推送
git push
7、拉取远程更新
拉去远程分支并合并
git pull
等价于:
git fetch && git merge
8、撤销操作
撤销工作区修改(危险!不可恢复):
git checkout -- <文件名>
撤销暂存区的文件(暂存区回退到工作区):
git reset HEAD <文件名>
git reset HEAD //撤销所有暂存区的修改
撤销最后一次提交(soft ):
如果当前文件在修改,则不会还原为之前的状态,只是回到git add后的状态(保留当前修改内容)
git reset --soft HEAD~1
撤销最后一次提交(hard):
如果当前文件在修改,所有未提交(commit)的修改会删除(注意),回退到上一次提交的状态。
git reset --hard HEAD~1
9、分支操作
创建分支:
git branch <分支名>
切换分支:
git checkout <分支名>
创建并切换分支:
git checkout -b <分支名>
合并分支(如合并到main):
git checkout main
git merge <分支名>
10、查看历史
简洁版日志:
git log --oneline
带分支图的日志:
git log --graph --all