ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[toc] ## git status `git status `命令将为你展示工作区及暂存区域中不同状态的文件。 这其中包含了已修改但未暂存,或已经暂存但没有提交的文件。 ### 示例 ~~~ $ git status On branch master nothing to commit, working directory clean ~~~ ## git add git add 命令使用文件或目录的路径作为参数,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。 ### 示例 ~~~ $ git add README [新增文件] $ git add CONTRIBUTING.md [修改文件] $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: README modified: CONTRIBUTING.md ~~~ ## git diff --cached --staged 如果 git status 命令的输出对于你来说过于模糊,你想知道具体修改了什么地方,可以用 git diff 命令 ### 示例 #### git diff 不加参数 ,查看尚未暂存的文件更新了哪些部分 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。 ~~~ $ git diff diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8ebb991..643e24f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -65,7 +65,8 @@ branch directly, things can get messy. Please include a nice description of your changes when you submit your PR; if we have to read the whole diff to figure out why you're contributing in the first place, you're less likely to get feedback and have your change -merged in. +merged in. Also, split your changes into comprehensive chunks if your patch is +longer than a dozen lines. If you are starting to work on a particular area, feel free to submit a PR that highlights your work in progress (and note in the PR title that it's ~~~ #### git diff --cached 查看已暂存的将要添加到下次提交里的内容 Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些。 ~~~ $ git diff --staged diff --git a/README b/README new file mode 100644 index 0000000..03902a1 --- /dev/null +++ b/README @@ -0,0 +1 @@ +My Project ~~~ 请注意,git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。 ## git commit -m -a 提交更新,每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令 git commit,会打开编辑器提示输入本次提交说明. 另外,你也可以在 commit 命令后添加 -m 选项,将提交信息与命令放在同一行. Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,如果给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤 ### 示例 ~~~ $ git commit $ git commit -m "Story 182: Fix benchmarks for speed" $ git commit -a -m 'added new benchmarks' ~~~ ## git rm --cached git rm 删除本地工作目录中的文件,并从已跟踪文件清单中移除(确切地说,是从暂存区域移除) rm 只删除本地工作目录中的文件,然后再运行 git rm 记录此次移除文件的操作 git rm --cached 把文件从 Git 仓库中删除(亦即从暂存区域移除),本地保留 支持 glob 模式,正则匹配 ### 示例 ~~~ $ git rm --cached README $ git rm log/\*.log ~~~ ## git mv 移动文件 ### 示例 文件改名,只是暂存了,后面需要commit ~~~ $ git mv file_from file_to ~~~ 其实,运行 git mv 就相当于运行了下面三条命令: ~~~ $ mv README.md README $ git rm README.md $ git add README ~~~