Git入门

1.初次运行Git的配置

git config --list --show-origin

git config --global user.name <name>
git config --global user.email <email>

2.Git命令帮助

git help <verb>
git <verb> --help
man git <verb>

# simple list
git <verb> -h

3.获取Git仓库

# 1.在已有目录下初始化
git init

# 2.克隆仓库
git clone <url> <floder_name>

4.记录每次更新到新仓库

检查文件状态

git status

# 精简输出
git status

跟踪新文件

git add <filename>

可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。

忽略文件
文件.gitignore的格式规范:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
    所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。
    要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
# 忽略所有的 .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 diff


# 2.查看已暂存的修改
git diff --staged

提交更新

git commit -m <message>

# 跳过使用暂存区域
git commit -a -m <message>

给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

移除文件

# 1.从版本管理中移除该文件
git rm <filename>

# 2.文件保留在磁盘,Git不再跟踪
git rm --cached <filename>

移动文件

git mv <file_from> <file_to>

5.git日志

# 显示每次提交所引入的差异, -2 选项来只显示最近的两次提交
git log -p -2


选项 说明
-p 按补丁格式显示每个提交引入的差异
--stat 显示每次提交的文件修改统计信息
--shortstat 只显示--stat中最后的行数修改添加移除统计
--name-only 仅在提交信息后显示已修改的文件清单
--name-status 显示新增、修改、删除的文件清单
--abbrev-commit 仅显示SHA-1校验和所有40个字符中的前几个字符
--relative-date 使用较短的相对时间
--graph 在日志旁以ASCII图形显示分支与合并历史
--pretty 使用其他格式实现历史提交信息
--oneline --pretty=oneline --abbrev-commit的简写

限制输出长度

选项 说明
- 仅显示最近的n条提交
--since,--after 仅显示指定时间之后的提交
--until,--before 仅显示指定时间之前的提交
--author 仅显示作者匹配制定字符串的提交
--committer 仅显示提交者匹配指定字符串的提交
--grep 仅显示提交说明中包含制定字符串的提交
-S 仅显示添加或删除内容匹配制定字符串的提交

6.撤销操作

撤销操作

场景:提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了

git commit --amend

这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。
文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。

例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

git commit -m 'initial commit'
git add <forgotten_file>
git commit --amend

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

取消暂存的文件

git reset HARD <file_name>

撤销对文件的修改

方便地撤消修改——将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)

git checkout -- <file_name>
posted @ 2025-05-18 13:38  rain-dragon  阅读(8)  评论(0)    收藏  举报