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。