我有网网站建设,做百度移动网站优化排,自己建一个电商网站,移动端使用wordpress富文本文章目录 1 检查当前文件状态2 跟踪新文件3 暂存已修改的文件4 状态简览5 忽略文件6 查看已暂存和未暂存的修改7 提交更新8 跳过使用暂存区域9 移除文件10 移动文件 现在我们的机器上有了一个 真实项目 的 Git 仓库#xff0c;并从这个仓库中检出了所有文件的 工作副本。 通常… 文章目录 1 检查当前文件状态2 跟踪新文件3 暂存已修改的文件4 状态简览5 忽略文件6 查看已暂存和未暂存的修改7 提交更新8 跳过使用暂存区域9 移除文件10 移动文件 现在我们的机器上有了一个 真实项目 的 Git 仓库并从这个仓库中检出了所有文件的 工作副本。 通常我们会对这些文件做些修改每当完成了一个阶段的目标想要将记录下它时就将它提交到仓库。请记住我们工作目录下的每一个文件都不外乎这两种状态已跟踪 或 未跟踪。 1 检查当前文件状态
查看哪些文件处于什么状态使用git status
$ git status如果在克隆仓库后立即使用此命令 出现的On branch … clean信息说明我们现在的工作目录相当干净。换句话说所有已跟踪文件在上次提交后都未被更改过。 此外上面的信息还表明当前目录下没有出现任何处于未跟踪状态的新文件否则 Git 会在这里列出来。 最后该命令还显示了当前所在分支并告诉我们这个分支同远程服务器上对应的分支没有偏离。 现在分支名是“master”这是默认的分支名。
现在在项目下创建一个新的 README 文件
$ echo My Project README
$ git status在状态报告中可以看到新建的 README 文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照提交中没有这些文件Git 不会自动将之纳入跟踪范围除非我们明明白白地告诉它“我需要跟踪该文件”。不过现在我们需要跟踪管理README这个文件。
2 跟踪新文件
使用git add 开始跟踪一个文件并用git status查看状态。所以要跟踪README文件运行
$ git add README
$ git status只要在 Changes to be committed 这行下面的就说明是已暂存状态。 如果此时提交那么该文件在我们运行 git add 时的版本将被留存在后续的历史记录中。
3 暂存已修改的文件
现在我们来修改一个已被跟踪的文件。比如该项目下的README.md文件(这是一个已被跟踪的文件)。运行
$ git status文件 README.md 出现在 Changes not staged for commit 这行下面说明已跟踪文件的内容发生了变化但还没有放到暂存区。 要暂存这次更新需要运行 git add 命令。
git add 命令功能
跟踪新文件把已跟踪的文件放到暂存区用于合并时把有冲突的文件标记为已解决状态
$ git add README.md
$ git status现在两个文件都已暂存下次提交时就会一并记录到仓库。 假设此时我们想要在 README.md 里再加条注释。 重新编辑存盘后准备好提交。 不过且慢再运行 git status 看看
$ vim README.md
$ git status怎么回事 现在 README.md 文件同时出现在暂存区和非暂存区。 这怎么可能呢 好吧实际上 Git 只不过暂存了你运行 git add 命令时的版本。 如果我们现在提交README.md 的版本是我们最后一次运行 git add 命令时的那个版本而不是我们运行 git commit 时在工作目录中的当前版本。 所以运行了 git add 之后又作了修订的文件需要重新运行 git add 把最新版本重新暂存起来
$ git add README.md
$ git status4 状态简览
git status 命令的输出十分详细但其用语有些繁琐。 Git 有一个选项可以帮你缩短状态命令的输出这样可以以简洁的方式查看更改
$ git status -s$ git status -short??新添加的未跟踪文件A新添加到暂存区中的文件M修改过的文件
5 忽略文件
一般我们总会有些文件无需纳入 Git 的管理也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件比如日志文件或者编译过程中创建的临时文件等。 在这种情况下我们可以创建一个名为 .gitignore 的文件列出要忽略的文件的模式。 来看一个实际的 .gitignore 例子
$ cat .gitignore
*.[oa] # 告诉Git忽略所有以 .o 或 .a 结尾的文件
*~ # 告诉 Git 忽略所有名字以波浪符~结尾的文件要养成一开始就为我们的新仓库设置好 .gitignore 文件的习惯以免将来误提交这类无用的文件。
文件.gitignore的格式规范如下
所有空行或者以 # 开头的行都会被 Git 忽略。可以使用标准的 glob 模式匹配它会递归地应用在整个工作区中。匹配模式可以以/开头防止递归。匹配模式可以以/结尾指定目录。要忽略指定模式以外的文件或目录可以在模式前加上叹号!取反。
6 查看已暂存和未暂存的修改
git diff可以通过文件补丁的格式更加具体地显示哪些行发生了改变可以用来回答
当前做的哪些更新尚未暂存有哪些更新已暂存并准备好下次提交
假如再次修改 NEWFILE 文件后暂存然后编辑 README.md 文件后先不暂存 运行 status 命令将会看到 运行git diff观察暂存前后的变化
$ git diff然后用 git diff --cached 查看已经暂存起来的变化 --staged 和 --cached 是同义词
$ git diff --cached7 提交更新
现在的暂存区已经准备就绪可以提交了。 在此之前请务必确认还有什么已修改或新建的文件还没有 git add 过 否则提交的时候不会记录这些尚未暂存的变化。 这些已修改但未暂存的文件只会保留在本地磁盘。 所以每次准备提交前先用 git status 看下我们所需要的文件是不是都已暂存起来了 然后再运行提交命令 git commit
$ git commit$ git commit -m 提交说明8 跳过使用暂存区域
尽管使用暂存区域的方式可以精心准备要提交的细节但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式 只要在提交的时候给 git commit 加上 -a 选项Git 就会自动把所有已经跟踪过的文件暂存起来一并提交从而跳过 git add 步骤
$ git status
$ git commit -a -m 提交说明9 移除文件
要从 Git 中移除某个文件就必须要从已跟踪文件清单中移除确切地说是从暂存区域移除然后提交。 可以用 git rm 命令完成此项工作并连带从工作目录中删除指定的文件这样以后就不会出现在未跟踪文件清单中了。
情况一从工作目录中手工删除文件
运行 git status 时就会在 “Changes not staged for commit” 部分也就是 未暂存清单看到
$ rm filename
$ git status再运行 git rm 记录此次移除文件的操作
$ git rm filename
$ git status下一次提交时该文件就不再纳入版本管理了。
如果要删除之前修改过或已经放到暂存区的文件则必须使用强制删除选项 -f。 这是一种安全特性用于防止误删尚未添加到快照的数据这样的数据不能被 Git 恢复。
情况二把文件从 Git 仓库中删除但保留在当前工作目录中
即想让文件保留在磁盘但是并不想让 Git 继续跟踪。
当我们忘记添加 .gitignore 文件不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时这一做法尤其有用。 为达到这一目的使用 --cached 选项
$ git rm --cached README10 移动文件
不像其它的 VCS 系统Git 并不显式跟踪文件移动操作。 如果在 Git 中重命名了某个文件仓库中存储的元数据并不会体现出这是一次改名操作。
在Git中对文件改名
$ git mv file_from file_to举例
$ git mv README.md README
$ git status运行 git mv 就相当于运行了下面三条命令
$ mv README.md README
$ git rm README.md
$ git add README