美文网首页
git 小贴士

git 小贴士

作者: sorry510 | 来源:发表于2020-12-30 11:06 被阅读0次
  1. 我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目的,使用 --cached 选项:
git rm --cached README
  1. .gitignore 正则常用匹配模式( glob 模式)
# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
  1. 跳过暂存直接提交 git commit -a
git commit -a -m 'fix: messagebody'
  1. 日志记录的 format
 git log --pretty=format:"%h - %an, %ar : %s"

git log --pretty=format 常用的选项

选项 说明
%H 提交的完整哈希值
%h 提交的简写哈希值
%T 树的完整哈希值
%t 树的简写哈希值
%P 父提交的完整哈希值
%p 父提交的简写哈希值
%an 作者名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date=选项 来定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期(距今多长时间)
%s 提交说明
  1. 重新覆盖之前的 commit记录
    有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:
    git commit --amend
    这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。
    文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。
    例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
 git commit -m 'initial commit'
 git add forgotten_file
 git commit --amend

最终你只会有一个提交——第二次提交将代替第一次提交的结果。

  1. 取消暂存的文件(已经 add 过的文件)
git reset HEAD CONTRIBUTING.md
  1. 撤消对文件的修改(还未 add 的文件)
git checkout -- CONTRIBUTING.md
  1. 别名
git config --global alias.ci commit
当你需要git commit 时,只需要输入 git ci

git config --global alias.unstage 'reset HEAD --'
git unstage fileA 等价于 git reset HEAD -- fileA
  1. 密码存储

如果不想在每一次推送时都输入用户名与密码,你可以设置一个 “credential cache”。 最简单的方式就是将其保存在内存中几分钟,可以简单地运行 git config --global credential.helper cache 来设置它。

  1. 修改正在跟踪的上游分支,使用 -u 或 --set-upstream-to 选项
git branch -u origin/serverfix
  1. rebase
    git rebase <basebranch> <topicbranch> 命令可以直接将主题分支 (即本例中的 server)变基到目标分支(即 master)上
git rebase master server

相关文章

网友评论

      本文标题:git 小贴士

      本文链接:https://www.haomeiwen.com/subject/uihydktx.html