撤销操作
1,Git 如何跟踪修改
在我们修改了代码内容后, 执行了 Git add 和 Git commit 命令来将其交由 Git 进行版本控制. 我们前面举的例子是这样的, Git add 将文件加入暂存区(菜篮子),Git commit 一并提交到版本库(柜台结账). 如果我们想拿其他的菜, 但是不加入篮子, Git 是无法对其进行跟踪的.
比如我们队 Test.java 第一次修改后, 执行 Git add 命令将第一次修改版本加入了暂存区, 然后又修改了 Test.java, 但是 commit 负责暂存区的修改提交了, 所以第二次的修改不会被提交.
那我们该如何将第二次修改的内容提交呢? 将其加入暂存区即可. add 命令是将目标文件加入跟踪列表, 每一次跟踪以 commit 为准, 也就是说你只要没有 commit, 不管你什么时候把这个文件 add 进去, 最终结果是你文件最后一次修改的结果.
说明: 简而言之, 如果不用 Git add 到暂存区, 那就不会随 commit 提交到版本库.
2, 撤销修改
修改最后一次提交
有时候我们提交完了才发现漏掉了几个文件没有加, 或者提交信息写错了. 想要撤消刚才的提交操作, 可以使用 --amend 选项重新提交:
比如我们提交后, 发现忘添加 MyClass.java 文件了, 我们可以把 Git add MyClass.java, 然后重新提交. 下面的三条命令最终只是产生一个提交, 第二个提交命令修正了第一个的提交内容.
取消暂存的文件
这个也很好理解, 我们使用 Git add . 将所有文件加入到了暂存区, 但是有了文件不需要提交, 我们可以把它从暂存区取消.
说明: 这里我们使用了命令 Git reset HEAD <file>... 来取消暂存.
取消对文件的修改
如果觉得刚才对 Test.java 的修改完全没有必要, 该如何取消修改, 回到之前的状态 (也就是修改之前的版本) 呢?
说明: 这里要说明的一点是, 如果 Test.java 加入到了暂存区, 又做了修改, 现在, 撤销修改就回到了暂存区后的状态. 如果文件被删除了, 也是可以找回的哦!
远程仓库
远程仓库是指托管在网络上的项目仓库, 可能会有好多个, 其中有些你只能读, 另外有些可以写. 同他人协作开发某个项目时, 需要管理这些远程仓库, 以便推送或拉取数据, 分享各自的工作进展. 管理远程仓库的工作, 包括添加远程库, 移除废弃的远程库, 管理各式远程库分支, 定义是否跟踪这些分支, 等等. 本节我们将详细讨论远程库的管理和使用.
查看当前远程仓库
要查看当前配置有哪些远程仓库, 可以用 Git remote 命令, 它会列出每个远程库的简短名字. 在克隆完某个项目后, 至少可以看到一个名为 origin 的远程库, Git 默认使用这个名字来标识你所克隆的原始仓库:
如图, 我们也可以加上 -v 选项(译注: 此为 --verbose 的简写, 取首字母), 显示对应的克隆地址.
添加远程仓库
要添加一个新的远程仓库, 可以指定一个简单的名字, 以便将来引用, 运行 Git remote add [shortname] [url]:
重命名远程仓库
- $ Git remote rename pb paul
- $ Git remote
- origin
- paul
删除远程仓库
- $ Git remote rm paul
- $ Git remote
- origin
查看远程仓库的信息
这部分内容, 我们将在下一篇文章中讲述分支管理后, 着重说明.
从远程仓库抓取数据
现在可以用字符串 pb 指代对应的仓库地址了. 比如说, 要抓取所有 Paul 有的, 但本地仓库没有的信息, 可以运行 Git fetch pb:
说明: 此命令会到远程仓库中拉取所有你本地仓库中还没有的数据. 运行完成后, 你就可以在本地访问该远程仓库中的所有分支, 将其中某个分支合并到本地, 或者只是取出某个分支, 一探究竟.
推送数据到远程仓库
项目进行到一个阶段, 要同别人分享目前的成果, 可以将本地仓库中的数据推送到远程仓库. 实现这个任务的命令很简单: Git push [remote-name] [branch-name]. 如果要把本地的 master 分支推送到 origin 服务器上(再次说明下, 克隆操作会自动使用默认的 master 和 origin 名字), 可以运行下面的命令:
$ Git push origin master
只有在所克隆的服务器上有写权限, 或者同一时刻没有其他人在推数据, 这条命令才会如期完成任务. 如果在你推数据前, 已经有其他人推送了若干更新, 那你的推送操作就会被驳回. 你必须先把他们的更新抓取到本地, 合并到自己的项目中, 然后才可以再次推送. 有关推送数据到远程仓库的详细内容接下来的文章.
这里依然涉及到分支管理的概念, 我们将在接下来的文章中详细说明.
来源: https://www.cnblogs.com/MrSaver/p/10243261.html