1、不该提交的文件已经提交后,仅仅在.gitignore中加入忽略是不行的。这个时候需要执行:
git rm -r --cached 文件/文件夹名字
去掉已经托管的文件,然后重新提交,这时.gitignore才起作用:
git add .
git commit -m ''
2、git查看本地文件的修改明细
git diff 文件名
3、git 撤销,放弃本地修改
3-1、未使用 git add 缓存代码时
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” 且“--”与filepathname之间有空格,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。
3-2、已经使用了 git add 缓存了代码
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(3-1)所示的状态。继续用(3-1)中的操作,就可以放弃本地的修改。
3-3、已经用 git commit 提交了代码
可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid
git log 可以查看请交历史记录
4、查看某次commit的修改内容
4-1、首先,需要通过git log打印所有commit记录
4-2、找到你想查看的那次commit的commitid。
4-3、查看修改。
git show commitId
4-4、查看某次commit中具体某个文件的修改:
git show commitId fileName
5、只提交部分文件到服务器
在我们的项目中,经常会在本地编译一些代码,还未写完,测试那边来告诉你要改改某个文件的bug,非常着急,此时改完了,提交的时候,自己还在编译的代码并不想提交,此时,你可以利用git这些指令帮助你!
5-1/ git status -s 查看仓库状态
5-2/ git add src/components/文件名 添加需要提交的文件名(加路径--参考git status 打印出来的文件路径)
5-3/ git stash -u -k 忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件
5-4/ git commit -m "哪里做了修改可写入..."
5-5/ git pull 拉取合并
5-6/ git push 推送到远程仓库
5-7/ git stash pop 恢复之前忽略的文件(非常重要的一步)
6、部分文件暂时忽略提交
有时候在排除bug、测试等场景下,会修改一些文件,但是这些文件又不希望在每次提交代码的时候都手动排除,这时候可以临时忽略这些文件。这样就不用修改.gitignore文件
使用方式
# 忽略文件
git update-index --skip-worktree <文件名称或路径,可以是多个文件>
# 取消文件忽略
git update-index --no-skip-worktree <文件名称或路径,可以是多个文件>
更简便的方式是修改~/.gitconfig文件,在其中添加别名,这样每次使用的话,命令会简洁
# 示例 [...]
...
[alias]
ignore = update-index --skip-worktree
unignore = update-index --no-skip-worktree
ignored = !git ls-files -v | grep --color "^S "