Git 使用指南 [记录]
忽略文件
vim .gitignore
添加需要忽略的内容如:
.DS_Store
(某个特定文件) *.a
(.a 结尾的文件) !lib.a
(否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件) /dist
(仅在当前目录下忽略 dist文件) bulid/
(忽略 bulid/ 文件夹下的所有文件) doc/*.txt
(忽略 doc/a.txt, 不包括 doc/server/b.txt)
已经commit 但是没有push 撤销某些文件/文件夹
# 删除文件夹
git rm -r --cached ${文件夹名}
# 删除文件
git rm --cached ${文件名}
或者把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
已经push 清除已经上传的多余文件
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
其实就是 git rm xxx xxx。用shell把文件名找出来循环删除了
用其他人的账户密码push
临时的方法:
git config --local credential.helper ""
git config user.name "xxx"
git config user.email "xxx"
撤销某次撤销
git log
查看分支
git reset —-soft acxxxxxxxxxxxxxxxxx
回到某个分支
git push --force
强制提交
暂存命令的作用
可以将git工作区的代码更改暂存,之后就可以执行 git pull
、git merge
之类的命令
暂存命令 git stash save "暂存的备注"
直接执行git stash也可以达到暂存的目的,但是连续多次暂存后容易让人混淆哪次暂存了哪些代码
查看暂存记录 git stash list
取回暂存代码 git stash pop
取消【取消暂存代码】
git reset --hard
请不要使用 git pull
当远程分支更新到A→B,本地是A→C,如果用git pull则会额外创建一个合并并提交 成了
|->C-->|
A->B----->D
会导致navigate的困难
为了实现A→B→C(保持提交的线性)
使用 git pull --rebase
如果有合并冲突 取消pull: git rebase --abort