基本操作:
(1)git status <file>
查看工作区和暂存区的文件状态
(2)git add {file} 或git add .
添加到暂存区,点的操作就是将所有文件目录下的文件都加入到暂存区
(3)git diff <file>
对比文件:
工作区&暂存区 git diff <file>
工作区&版本库 git diff HEAD <file>
暂存区&版本库 git diff --cached <file>
(4)git reset <版本编码>
--hard会回退到上个版本,
-
暂存区:被重置
-
工作区:被重置(你的所有未提交更改永久丢失!)
-
效果:完全回到
C0的状态,就像什么都没发生过
--soft会回退到上个版本的未提交状态,
-
暂存区:保持你的所有更改(仍然是
git add后的状态) -
工作区:保持你的所有更改
--mixed会回退到上个版本已add但未提交的状态。
-
暂存区:被重置(与
C0一致,你的git add效果被取消) -
工作区:保持你的所有更改(但变为了未暂存状态)
-
效果:你需要重新
git add文件后再提交
(5)git add
git add <file> 添加到暂存区,git add . 全部添加到暂存区
(6)git commit
git commit -m "备注提交内容"。
note:git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。注意:git commit 提交的是暂存区的东西
(7)git restore
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
案例:1、2、常用
1、工作区中的修改尚未被提交到暂存区,撤销修改:git restore readme.txt
2、工作区中的修改已被提交到暂存区,尚未被提交到本地仓库,撤销修改:git restore --staged readme.txt将修改从暂存区撤除,然后再用git restore readme.txt将修改从工作区撤除。
3、修改已被提交到本地仓库,撤销修改:假如该次提交只提交了这一个修改,则可用git reset --hard CommitID恢复到提交前的版本。也可以用git revert命令反转该次提交。但是如果该次提交涉及了多个文件的多处修改,这样操作会将其他的修改一并清除。此时我们可以用git reset命令指明文件和预期的恢复ID来将修改从暂存区中移除。例如git reset HEAD^ readme.txt是将此文件恢复到次新版。然后git restore readme.txt将修改从工作区撤除。然后再git commit -m msg提交到本地仓库
(8)删除文件
先rm <file>
后通过git rm <file> 或git add <file>
最后git commit -m "版本库已删除 file文件"
note:另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout -- test.txt
ps:git checkout -- <file-name> 就等于现在的 git restore <file-name>
(9)创建分支
git branch dev #创建分支
git checkout -b dev #创建分支并切换
git switch -c dev #创建分支并切换(新版)
(10)合并分支
举例:master 合并dev的修改
1、切换分支:git checkout main
2、git merge dev
(11)删除分支
git branch -d <分支名>
(12)合并分支通过 分支管理策略 - Git教程 - 廖雪峰的官方网站
git merge --no-ff -m "merge with no-ff" dev
好处:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
(13)远程仓库
实际例子:
(1)合并分支遇到冲突
1、通过git status 处理每一个冲突
2、冲突解决后,通过git commit
3、填写备注信息 保存退出
(2)bug出现时,手头上正在开发分支(dev),需要马上先去修复bug的场景
由于手头上的dev还有好几个修改不方便提交
保存:git stash 保存现场的工作区和暂存区
恢复:先用 git stash list查看最稳妥
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
1201

被折叠的 条评论
为什么被折叠?



