git push 和 git commit 的标签有什么区别

What's the difference between the tags of git push and git commit

我开始使用 git 大约 1 个月,但我是那种执行命令的用户,因为知道它有效,但不知道确切原因。所以我在互联网上做了一些研究寻找一些答案,但其中一些我找不到。

到目前为止,我最好的参考资料是: try.github.io, git - the simple gide,Whosebug 中的一些帖子和 Github 的帮助指南。

那么,我们在提交时使用的目标之间有什么区别?例如,刚才我在 GitHub 上进行了推送,我尝试使用 git commit -a 代替 git commit -m "comments",但没有成功。我也看到 git commit -am 存在。是不是和前两个一样?同样,大多数情况下,当我在互联网上搜索时,我看到人们使用 git push origin master 而我总是只使用 git push。这些品种有时让我感到困惑。

一切都是为了熟悉 Git 及其运作方式。一旦您变得更加舒适,您将开始使用快捷方式来完成同样的事情并节省您的时间。 因此,假设您创建了一个分支并编辑了一些文件。现在您想推送这些更改并在您的远程分支上查看它们。你会这样做:

git status
git add .
git commit -m "First commit for branch"
git push

一种更简单的方法是将添加命令与提交命令结合起来。您可以这样做:

git commit -a -m "First commit for branch"

就使用git push而言,它会将您当前的分支推送到具有相同名称的远程分支。 git push origin master 会将您的 master 分支推送到原点。

如果您打算使用 git push,那么您需要确保您推送的是正确的分支。您可以使用 git branch.

检查您当前所在的分支

解决您在问题中提到的所有命令..

  • git commit -a 将打开一个编辑器供您输入提交消息,并且 -a 参数添加所有已被 git 跟踪的文件,但是在此提交中进行了修改。

  • git commit -m "This is the commit message" 允许您在命令本身中编写提交消息,因此您不必在编辑器中键入它。为此,您应该已经 git add file1 file2 .. 个要提交其更改的文件。

  • git commit -am 只是写 git commit -a -m 的一种奇特方式,正如您应该从以上几点中学到的那样。-a argument/option 将添加文件并-m 选项允许您提供内联提交消息。
  • git push origin master - 这里 origin 是远程的,master 是要推送的分支...使用 git push 对你有用,因为你已经设置了使用此命令 git push -u origin master 更早地进行上游分支,因此,您不必在每次推送时都告诉 git。使用 -u 告诉 git 记住当前签出分支的 remotebranch

此外,如果您需要更多帮助,您可以使用 man 页数或 git --help,您甚至应该考虑阅读 Pro Git 以获得更深入的理解