似乎很容易,但我只是不明白.我是我申请的根本.
这是我的工作流程.
git add .
git commit -m "added a new feature some files changed"
git push heroku master
Run Code Online (Sandbox Code Playgroud)
这通常有效.我所有的改变都被推了.
但有时候我有一个我改变的文件,但是当我推送到Heroku时,这些文件的更改并不存在......但是对于大多数文件而言,更改都在那里......
但如果我这样做
git add .
git commit -am "added a new feature some files changed"
git push heroku master
Run Code Online (Sandbox Code Playgroud)
一切(所有变化)都被推送到Heroku
Dav*_*yon 66
来自文档:
git commit -a 在提交之前自动暂存所有被跟踪的,已修改的文件如果您认为工作流的git add阶段太麻烦,Git允许您使用-a选项跳过该部分.这基本上告诉Git在任何"跟踪"的文件上运行git add - 也就是说,你上次提交并且已被修改的任何文件.这允许您根据需要执行更多Subversion样式工作流,只需编辑文件,然后在要对已更改的所有内容进行快照时运行git commit -a.你仍然需要运行git add来开始跟踪新文件,就像Subversion一样.
使用该选项-am可以在一个命令中为提交添加和创建消息.
小智 12
我建议,如果你只更改了一个文件,那么你可能会这样做:
git add "Your_file.txt"
git commit -m "added a new feature in a file"
git push heroku master
Run Code Online (Sandbox Code Playgroud)
或者,如果您更改了多个文件,那么您可以执行以下操作:
git add .
git commit -m "some files changed"
git push heroku master
Run Code Online (Sandbox Code Playgroud)
同样,您可以使用以下命令在一行上添加和提交所有文件:
git commit -am "added a new feature some files changed"
Run Code Online (Sandbox Code Playgroud)
它们之间的基本区别在于:
git commit -m = send log message (don't work without git add )
Run Code Online (Sandbox Code Playgroud)
git commit -am = git add -a + git commit -m
Run Code Online (Sandbox Code Playgroud)
和 git add -a = 阶段一切
git commit -am是对 TRACKED(=STAGED) 文件立即暂存和提交的便捷命令。
正如钉子回答的那样,
git commit -am = git commit -a + git commit -m
Run Code Online (Sandbox Code Playgroud)
git commit -m:提交消息(你可能知道这部分)
git commit -a|git commit --all:
告诉命令自动暂存已修改和删除的文件,但你没有告诉 Git 的新文件不受影响。-来自 git 文档
你没有告诉 Git 的新文件不受影响
粗体部分是重要的部分。
该-am标志仅适用于TRACKED修改或删除的
因此,如果您添加新文件并提交-am标志提交,则这些新创建的文件将不会包含在提交中,因为它不会被跟踪(暂存)。
如果您创建新文件并希望使用-am标志来避免使用
git add .
git commit -m "some commit" // reducing one line makes a big difference, I agree
Run Code Online (Sandbox Code Playgroud)
,首先使用git add .和 来暂存这些新命令,您可以使用git commit -am上面两行的命令来代替。