自从我开始使用Git以来,我一直很难过。这是我想要击败的学习曲线。我已阅读过手册和常见问题解答以及其他几个网站,但我仍然没有看到我期望的行为,并希望有人使用VS2010与GiHub无法为我提供我需要的魔法指针。
这些是我创建新项目/存储库的步骤。
1。在GitHub上创建新的存储库 - 为它命名并创建它
2。在VS2010中创建我的解决方案
第3。第一次提交
这是我第一次提交解决方案的步骤: (我安装了git和git扩展,我创建了一个VS工具栏,允许我从VS2010中弹出git bash)
我点击了我在工具栏上创建的Git Console按钮,我得到了bash窗口,当前目录是我的解决方案的根目录
然后我执行这些命令将我的解决方案提交到GitHub网站上的GitHub存储库
1。 git init - 正常工作
2。 git add。 - 正常工作
第3。 git commit -m'首次提交' - 正常工作
第3。 git remote add origin git@github.com:alfalfastrange / RepositoryName.git - 正常工作
4。 git push -u origin master - 然后用拒绝消息和关于fastforward等的错误来处理我......
5。 git pull origin master - 正常工作
6。 git push -u origin master - 提交工作,然后我可以在GitHub上在线查看整个解决方案
现在我遇到的问题是从现在开始......如果我改变我的解决方案,我就无法将它们带入GitHub。例如,我删除文件,添加文件和添加代码等,然后我准备提交所有这些更改
我已经尝试过这些事件序列并且没有运气
1。 git add。
2。 git commit -m'第二次提交' - 将更改添加到本地存储库
第3。 git push -u origin master - 我发出的消息是一切都是最新的,我检查了在线存储库并且没有进行任何更改
4。 git pull origin master - 我已经告诉了所有已经最新的
5。 git push -u origin master - 我发出的消息是一切都是最新的,我检查了在线存储库并且没有进行任何更改
6。 git push origin master - 给出了一切都是最新的消息,我检查了在线存储库并且没有进行任何更改
从那时起,似乎所有提交都是对本地存储库的提交更改,并且我尝试过的任何命令都不会将更改推送到GitHub存储库。
所以在这一点上,我有点恼火,这并不容易。使用我的Ankh SVN和Codesion设置,我所要做的就是单击提交或更新以推送更改或从在线存储库中提取最新信息。
我错过了什么?因为我希望能够成功地使用Git而不必担心我的所有个人项目。提前谢谢!
更新
运行git branch -avv命令后,这是结果
更新2
执行步骤1 - 6并将-f添加到步骤3
更新3
从答案
运行命令序列后
这对我没有任何意义,因为我们已经做了所有这些......我只使用Git Bash
答案 0 :(得分:1)
您的第一条错误消息当然是:
$ git push origin master
To ../remote/
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '../remote/'
这是正常的,考虑到你有两个平行的历史:GitHub(空回购)和你当地回购中的一个。另见“I am not able to push on git?”
在git pull
之后,您将GitHub的初始历史记录合并到本地仓库中,并成功进行首次推送。
现在,如果下一个git推送(无需再次添加-u
)报告所有内容都是最新的,请检查您是否不在detached HEAD
mode。
这意味着git branch将不会显示当前分支(前面带有“*
”)
其他原因:“git says Everything up-to-date”。
答案 1 :(得分:1)
正因如此,人们不必滚动评论:
运行git fetch origin
以将远程分支提取到本地存储库。 (您也可以使用git remote add
标记将此步骤滚动到-f
步骤。)完成后,您可以使用本地主控制器跟踪远程主控。
一切都搞定了,最简单的工作流程如下:
# assuming an up-to-date branch and a dirty working copy
git add . # Add changes under the current directory to the index
git commit -m "Commit message"
git push origin
您也可以将add
和commit
分成一个步骤:
git commit -am "Commit message" # Commit changes in tracked files to your local repo
请记住,我不知道Gitextensions如何运作;它可能有自己的插件。