【问题标题】:New to git -- git add/commit/push/pullgit 新手 -- git add/commit/push/pull
【发布时间】:2014-01-17 16:09:35
【问题描述】:

我在 Mac OS 上。我打开终端,转到文件夹~/../../Search_Engine,其中包含一堆已经推送到我的 GitHub 的 Java 文件,以及项目先前版本的文件夹(在 Project 1Project 2 等文件夹中)所以我会告诉你我正在做什么以及我的问题出现在哪里。

再次,我将cd 转换为~/../../Search_Engine,我已经使用了git init。我试试这个:

nathan-fuller-mbp:Search_Engine nathanfuller$ git add Project\ 2
nathan-fuller-mbp:Search_Engine nathanfuller$ git commit -m 'project 2 commit'

然后这个烂摊子就发生了……

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   AssignmentsInterface.java
#   CommandInterface.java
#   DatabaseInterface.java
#   DocumentInterface.java
#   ExpressionTreeInterface.java
#   HistoryInterface.java
#   InvertedFileInterface.java
#   InvertedListInterface.java
#   MapInterface.java
#   NextCommandInterface.java
#   Project 3/
#   Project 4/
#   Project 5/
#   Project 6/
#   ResultListInterface.java
#   TestHarness.java
#   WordListInterface.java
nothing added to commit but untracked files present (use "git add" to track)
nathan-fuller-mbp:Search_Engine nathanfuller$ 

所以这是我的第一个问题。谁能向我解释一下发生这种情况时会发生什么以及为什么会发生这种情况?

继续...我尝试推动(我可能不应该,因为我们已经遇到了问题,但我还是会展示发生了什么):

nathan-fuller-mbp:Search_Engine nathanfuller$ git push origin master
To https://github.com/NateFuller/Search-Engine.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/NateFuller/Search-Engine.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
nathan-fuller-mbp:Search_Engine nathanfuller$ 

有什么建议吗?如果您希望我发布更多详细信息,请告诉我。

【问题讨论】:

  • 男人混帐。 try.github.io/levels/1/challenges/1 或其他教程。这是非常基本的东西,与编程无关,抱歉。
  • issue git stash, git pull, git stash apply,然后修复所有不一致的地方,然后执行:git add ., git commit, git push origin master
  • @MihaiMaruseac - 我可以建议您阅读我们的“主题”页面吗? stackoverflow.com/help/on-topic : 关于“程序员常用的软件工具”如git的问题是这里的主题。谢谢。
  • 如果你已经提交了更改,创建一个分支git branch org,并切换到它:git checkout org,然后将 HEAD 设置为以前的常见提交,然后执行:git pull,然后更改分支返回git checkout master,将其与原点git merge org 合并。解决冲突,然后执行:git push origin master.
  • @MihaiMaruseac 感谢您对交互式教程的参考。我对堆栈溢出也很陌生,如果这个问题与编程无关,很抱歉。我想说我对 git 的了解很少,考虑到这不是我第一次推送到 github。我只是问,因为发生了错误,我想知道它是否发生在其他人身上以及他们是如何解决问题的。

标签: git bash github terminal


【解决方案1】:

因此,您导航到已初始化 git 存储库 (git init) 的目录。您已成功将目录“Project 2”添加到您的 git 客户端 (git add Project\ 2) 的头部。然后,您继续将当前的 head(其中只有 Project 2)提交到您的存储库。

在成功提交后,Git 通常会提供有关当前目录中所有未跟踪文件的反馈。如您所见,项目 2 不再存在。使用命令 git log 查看您在项目中所做的所有提交。

从终端反馈来看,您在初始化 git repo 后并没有添加所有项目文件。 git init 总是初始化一个空的仓库。如果项目文件都在一个目录中,您可以使用 git add . 添加项目文件(不要忘记点)。

在继续处理第二个问题之前。请注意,您只能推送到与本地存储库具有相同历史记录的远程存储库。如果您的项目已经在 github 上,我会使用 git clone(使用您最喜欢的搜索引擎)来确保您首先拥有一个具有相同历史记录的 git 存储库。如果您希望继续从本地存储库工作,我会重新初始化您的 Github 存储库,然后将您的本地存储库推送到它,因为空存储库是唯一一个不需要匹配以前的历史记录即可推送到它的存储库.

【讨论】:

    【解决方案2】:

    看起来您实际上并没有使用git add 命令添加文件。

    我会用

    检查状态

    git status

    添加整个项目的捷径是

    git add -A

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2014-03-09
      • 2012-06-24
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多