我是git的新手.
我按如下方式完成了远程仓库的克隆
git clone https://myusername@something.com/repo.git
Run Code Online (Sandbox Code Playgroud)
然后我做了
git checkout master
Run Code Online (Sandbox Code Playgroud)
做了一些更改并将这些更改提交到我的本地存储库,如下所示.
git add .
git commit -m "my changes"
Run Code Online (Sandbox Code Playgroud)
现在我必须将这些更改推送到远程存储库.
我不知道该怎么做.
我会将我的回购合并到远程吗?
我需要采取哪些步骤?
我有git bash和git gui
请指教,
谢谢,
我刚刚拉了一个新的分支,做了一些本地的修改,承诺并试图推动.我得到了这个错误:! [rejected] groups -> groups (non-fast forward)
所以我尝试了拉,但被告知Already up-to-date.
这就是我拉动然后推动的东西.
~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
! [rejected] groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这是如何发生的以及如何解决它?
我似乎无法找到一个很好的解释.
我知道git pull会做什么:
1)获取,即来自服务器的所有额外提交被复制到本地存储中,并且origin/master分支指针移动到提交链的末尾
2)合并所述的原点/主分支到主支路,该主支指针移动到新创建的提交,而原点/主指针留在原地.
我认为git push做的事情非常相似,但我不确定.我相信它会做其中一个,或类似的东西,或其他东西(?):
要么
我目前正在使用git进行基本操作,所以我做得很好,但我想完全理解这些内部结构.
有没有办法阻止强制推入分支或存储库?
我想阻止重要的分支机构无意中或故意重写其历史记录.人们如何在大型开发团队中处理这个问题?
理想情况下,在我看来,可以锁定每个存储库的几个分支,并防止除了存储库所有者之外的所有人强行推入它们.
我在GitHub公司帐户上有一些Git私有存储库,我不希望任何人推动某些特定的分支(如master,develop和beta或模式).我也试图定义一些钩子,但我希望这可以在GitHub上完成,而不是在客户端上使用预推钩.
所以简单地解释我的问题,我想:
git push origin develop
Run Code Online (Sandbox Code Playgroud)
由于分支名称被服务器(GitHub)拒绝,但我不希望通过pre-push hook检查客户端,我真的希望GitHub进行检查并拒绝它.
此外,如果只允许某些用户这样做,但是一开始就为每个人禁用它就足够了.
我有'更新'钩子的问题.在新分支的情况下,它获得0000000000000000000000000000000000000000作为'oldrev'.我不知道如何处理这种情况.
我们要求每个提交消息都引用有效的Jira问题.所以我在我们的中央存储库上安装了一个"更新"钩子.那个钩子得到了"oldrev"和"newrev".然后我将这些传递给"git rev-list",如下所示:
git rev-list $oldrev..$newrev
这给了我所有转速的列表,然后我可以迭代,并做我需要做的任何事情.
问题是,当用户推送新分支时,钩子获得0000000000000000000000000000000000000000作为oldrev.而"git rev-list"只是抱怨:
fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2
那么如何获得该新分支上所有转速的列表?我已经搜索网了很长一段时间了,一无所获.我找到了示例钩子
这些听起来都不是特别刺激.
那么有人知道如何在这种情况下得到正确的答案吗?我正在考虑查询git"给我所有可以从newrev到达的转,但不能从任何其他分支(=除了新分支之外的所有分支)".但是,如果从新分支到任何旧分支的合并,即使这样也会给出错误的答案.
我试图按照这篇文章中提出的解决方案,但它没有工作,我仍然得到:src refspec master不匹配任何.
这就是我所做的:遵循这个解决方案
// adding the file I created
$ git add .
$ git commit -m 'initial commit'
$ git push origin master
error: src refspec master does not match any.
Run Code Online (Sandbox Code Playgroud)
做的时候:
$ git push origin HEAD:master
b40ffdf..a0d1423 HEAD -> master // looks promising
// adding a remote
$ git remote add devstage -f <another git>
$ git merge devstage/master -s recursive -X ours
$ git push -u devstage master
error: src refspec master …Run Code Online (Sandbox Code Playgroud) 我已经更改了我的存储库的子目录中的单个文件,我想将该文件推送到Github.
我对一个文件做了一些小改动,我不想重新上传整个存储库.
看起来我到目前为止看到的所有指令都要求我在本地与主服务器合并,然后将我的本地主服务器推送到远程源.
我怎么才能推送那个文件?
我还是git新手.我修改了一些源文件并提交了.然后,我做到了git push.但是,我收到了这个错误.
To /foo/bar/ ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/foo/bar/' To prevent you from
losing history, non-fast-forward updates were rejected Merge the
remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
这似乎拒绝,我也没有git pull之前push.所以,我做到了git pull.好的,其他人有两个修改过的文件.
然后,我 git push成功了.
问题:在这种情况下,我会看到一个更多的日志,如下面的原始提交消息:
commit 59e04ce13b8afa...
Merge: 64240ba 76008a5
Author: Jone Doe <jone@doe.com>
Date: Fri Mar 15 11:08:55 2013 -0700 …Run Code Online (Sandbox Code Playgroud) 在过去 2 天里,我在尝试使用 cmd 提示符将我的代码拉入/推送到 GitHub 存储库时遇到了问题。我该如何解决这个问题?
登录失败,使用 ctrl+c 取消基本凭据提示。“https://github.com”的用户名:satyendrasingh8 “https://satyendrasingh8@github.com”的密码:远程:用户名或密码无效。致命:“https://github.com/satyendrasingh8/chatApp.git/”的身份验证失败
git-push ×10
git ×9
github ×4
git-pull ×2
git-branch ×1
git-commit ×1
git-remote ×1
githooks ×1