1、git将文件添加到.gitignore
文件中不生效?
原因:在加入.gitignore
前该文件已经被追踪。git rm file.js --cache
将该文件从版本跟踪中移除,然后重新commit。
2、撤销commit
git reset head^
撤销上一次commit,将变更代码保留,暂存区清空,更改后的代码保留在工作区。等同于 --mixed
参数,即git reset --mixed head^
。
git reset head ~1
撤销上一次commit
--hard
参数,撤销commit,变更后的代码不保留。工作区和暂存区都清空。
--mixed
参数,撤销commit,将变更的代码保留到工作区,暂存区为空。
--soft
参数,撤销commit,将变更的代码保留在暂存区。
3、撤销暂存区
3.1 git reset head
git reset head
不指定任何参数,就会撤销暂存的所有文件。
git reset head ./src/index.js
将index.js从暂存区中移除。
3.2 git restore --staged <file>
git restore --staged ./
从暂存区移除文件变为修改后尚未提交的状态。
git restore --staged ./src/index.js
将index.js从暂存区移除。
4、撤销工作区文件修改
git restore ./
撤销当前目录下所有修改文件。
git restore ./src/index.js
撤销index.js文件。
5、更新远程仓库分支列表
git branch
查看本地所有分支,git branch -a
查看所有分支(包含本地和远程的分支),发现分支列表与远程仓库不一致,这时需要更新远程分支。
git remote update origin -p
更新远程仓库分支,p是prune简写。再执行git branch -a
命令查看全部分支信息与远程仓库一致。
6、分支
6.1 切换分支
git checkout dev
切换到dev分支。
6.1 创建一个新分支
git branch dev
基于当前分支,创建一个dev分支,此时并没有切换到dev分支上。
git branch -b dev
基于当前分支,创建一个dev分支,并切换到dev分支上。
git branch -b dev
等同于git branch dev
+git checkout dev
。