git提交问题

时间:2009-11-16 23:09:59

标签: git

我刚刚提交了我的工作树,首先添加到索引,使用“$ git commit -m'test'”我将stdout-put从此保存到文件中,我在其顶部看到它说

# On branch master  
# Changed but not updated:  
# (use "git add/rm ..." to update what will be commited)  
# (use "git checkout -- ..." to discard changes in working directory)"  

问题是我的工作树没有被提交到回购站,我觉得这与它有关系

感谢

7 个答案:

答案 0 :(得分:28)

简答:

git push -u origin master

更长的回答:

您最有可能尝试将提交推送到尚未创建的分支 - 例如,在新创建的Github存储库中没有自动创建的README文件。通过调用git push -u origin master,您可以指定需要推送到的远程(origin,通常是git默认值)和分支(master,在典型情况下也是默认值)。根据git文档:

  

-u - 设置上游          对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数git-pull(1)和   其他命令。更多          有关信息,请参阅git-config(1)中的branch..merge。

这意味着在成功运行此命令后,从那时起,您将能够使用git pushgit pull,并且默认为origin master(有一些{ {3}})。

答案 1 :(得分:6)

在提交更改之前,必须先将其添加到索引中:

git add myfile
git commit -m "test"

或者,您可以使用更像SVN的样式并提交所有已更改的内容:

git commit -a -m "test"

或者您只需添加并提交单个文件:

git commit myfile -m "test"

答案 2 :(得分:2)

在你犯下之前你做过git add .吗?

git statusgit add之前进行git commit以查看已更改和上演的内容总是明智的。

执行git diff以查看您即将提交的具体更改也非常方便。

如果您添加了一个文件然后将其重命名,则显示git status显示的内容。

me@home:~$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   foo.txt
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    foo.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   bar.txt

此时你可以git add .然后git status will give you more information, perhaps pointing out that you still have a new file and a deleted file called foo.txt . To fix this you need to manually git rm foo.txt before doing git commit`

将来,如果您要移动的git仓库中有文件,则应使用git mv

答案 3 :(得分:1)

另外需要注意的一点是,git add会在运行时将这些文件的内容添加到索引中。如果您运行git add然后更改文件,新的更改将不会显示在索引中。

答案 4 :(得分:0)

你真的必须阅读文档。

git add yourfile
git commit -m "test"

或者,提交所有已更改的文件 -

git commit -a -m "test"

答案 5 :(得分:0)

如果您之后移动文件并使用git add,git只会添加新副本,但不会删除旧副本:

$ git status
# On branch master
nothing to commit (working directory clean)
$ mv from to
$ git add .
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   to
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    from
#
$ git commit -m "..."
$ git status
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    from
#
no changes added to commit (use "git add" and/or "git commit -a")

要删除旧副本,您还应使用git rm

$ git rm from
rm 'from'
$ git commit -m "..."
$ git status
# On branch master
nothing to commit (working directory clean)

但我不明白为什么它不允许你提交这些更改。

答案 6 :(得分:0)

伙计们我和Git有同样的问题 我在Windows 8上运行Cygwin。

  1. 检查您是否拥有要提交的存储库。
  2. 检查路径
  3. $ git remote -v#这就是你如何看待自己的路径

    $ git remote set-url origin git@github.com:username/repos.git#这是您远程设置新路径以将文件推送到正确的存储库的方式。 $ git remote -v#检查是否设置了正确的路径。

    1.   

      $ git add。

    2. 4

       $ git push origin master
      

      希望这有助于