Skip to content

记录每次更新到仓库

工作目录下的文件不外乎两种状态:已跟踪或未跟踪 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照有它们的记录 除去已跟踪的文件外,其他文件都属于未跟踪文件,它既不存在于上次快照的记录中,也没有被放入暂存区

检查文件状态

检查当前文件状态:git status

txt
# 提示有三条记录没有推送
Your branch is ahead of 'origin/master' by 3 commits.
  (use "git push" to publish your local commits)

# 提示文件 git/a.md 修改没有提交
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   "git/a.md"

# 提示文件 git/b.md 是新添加的未追踪文件
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        "git/b.md"

no changes added to commit (use "git add" and/or "git commit -a")

状态简览:git status -s (新添加的未追踪文件: ??, 新添加到暂存区: A, 修改过的文件: M)

text
M "git/a.md"
?? "git/b.md"

忽略文件

一般我们总会有些文件无需纳入 Git 管理,创建一个 .gitinore 文件来管理,例如

text
# 忽略所有的 .a 文件
*.a

# 追踪 lib.a
!liba

# 只忽略当前目录下的 TODO 文件
/TODO

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

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

# 忽略 doc/ 目录及其子目录下的 .pdf 文件
doc/**/*.pdf

.gitignore文件列表参考

查看已暂存和为暂存的修改

要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff: 这条命令比较的时工作目录中当前文件和暂存区域快照的差异(修改之后还没有暂存起来的变化内容) 若要查看已暂存的要添加到下次提交里的内容,可以使用 git diff --staged (比对已暂存文件与最后一个提交的文件差异)

提交更新

  • git add filename 添加文件到暂存区域
  • git commit 提交命令
  • git commit -m "commit infomation" 带信息的提交命令
  • git commit -a 跳过使用暂存区域
  • git commit --amend 撤销&提交 - 本次提交与上次提交合并(第二次提交将代替第一次提交的结果)
  • git rm <filename> 移除文件
  • git checkout -- <file> 使用最近提交的版本覆盖它(除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令)
  • git mv <file_from> <file_to> 移动文件(可用于文件改名)

“反悔”操作

  • git checkout -- . 一次性撤销所有本地修改
  • git checkout -- [filename] 撤销指定文件的修改
  • git reset <filename> 撤销对文件的暂存
  • git reset --hard HEAD~1 重置上一次提交
  • git merge --abort 撤销合并
2025( )
今日 8.33%
本周 42.86%
本月 48.39%
本年 4.11%
Powered by Snowinlu | Copyright © 2024- | MIT License