我还是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) 据我所知,git pull someRemote master试图将远程分支合并到我的.
有没有办法说"完全丢弃我的东西,只需使用git pull让我另一个克隆遥控器"?我仍然希望保留自己的存储库并保留它的历史记录,但我想在该命令之后获得someRemote主分支的1:1副本.
为了澄清,想象有2个存储库,RM和MY.数字是提交,这假定只有一个分支(主).
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3 -+-> MY4 --- MY5 --- MY6 ...
所以我开始自己的存储库作为RM1的克隆.然后我愉快地发展,RM愉快地发展,但我们从不分享我们的工作.在MY3之后,我意识到我的分支并不是那么好,但RM4非常好.所以我想把git pullRM4变成MY.但是,我不希望MY1-3中的更改持续存在,我希望MY4是RM4的1:1副本.
但是,我想保留我的历史,理想情况下我希望在MY3和RM4之间或在MY3和RM2-4之间进行更改.
它应该仍然保留我的存储库.
那可能吗?
(这适用于GitHub项目,我可以在这些项目中进行项目分析,稍微试验一下,不管它几个星期但是然后想要更新它而不保留我的更改.目前我删除了我的分叉并重新分叉,这不是'最好的方法.)
在Github上设置回购后,似乎有两种方法可以将该回购转换为本地回购.
首先,我可以创建一个目录,初始化一个空白仓库,添加一个遥控器,然后从遥控器中提取更改.
> mkdir "exampleProject"
> cd "exampleProject"
> git init
> git remote add origin git@github.com:exampleUser/exampleProject.git
> git pull origin master
Run Code Online (Sandbox Code Playgroud)
其次,我可以克隆遥控器.
> git clone git@github.com:exampleUser/exampleProject.git
Run Code Online (Sandbox Code Playgroud)
克隆只是上述5步版本的快捷方式,还是做其他任何事情?如果我使用一种方法而不是另一种方法,我会遇到困难吗?
我来自SVN环境,我正在用TortoiseGit探索Git.
当我右键单击"签出"的Git存储库时,我可以执行Git Sync命令,也可以执行Pull命令.
这两个函数之间有什么区别?
从http拉到转义验证(如果我不使用ssh.keygen,我不需要输入密码).
通过身份验证推送ssh.
我正在开发一个项目,每个人都将其SVN用作集中式服务器,每个人都会推动他们在该服务器上所做的更改.我想在Git本地使用,我很新git svn.我做了一个git svn clone存储库,git svn clone -r HEAD https://svn.repo/app/branch我希望通过git进行更新.
我需要一个'git pull like'命令,但要从SVN服务器repo的特定版本中提取.还有一个'fetch like'命令从SVN服务器repo的特定修订版中获取?
我的.svn克隆项目git remote中没有任何文件夹,也没有给我任何东西.但是我做了一个git config -l,我得到了SVN服务器的URL,所以不知怎的,我与SVN服务器链接.我不知道如何取或拉.
谢谢!
我正在和我的队友一起做一个项目。几周前,我成功地从 git 中提取了该项目。但是今天当我想 通过命令“ git pull origin <my_branch >”拉取更新的项目时,它给了我以下错误:
client_global_hostkeys_private_confirm:服务器为 RSA 密钥 0 提供了错误的签名
我已经使用命令ssh-keygen生成了公钥,然后将新生成的文件id_rsa.pub的内容粘贴到Git 的“添加 SSH 密钥”部分,但是pull 命令不起作用。有人可以帮助我吗?
我在git中有两个开发分支,我经常需要在两者之间进行更改.然而,真正令人沮丧的是,每次我在git中更改分支时,整个项目都会重建,因为某些文件的文件系统时间戳会发生变化.
Ofc,makefile被配置为将项目构建到两个不同的构建目录中.
有没有办法解决?编译是一个非常漫长而耗时的过程......
编辑: - 这是一个稍微更详细的问题解释...说我有一个头文件Basic.h,它包含在许多其他文件中.分支1和分支2之间的Basic.h不同.
现在假设我已将分支1编译为build_branch1,将分支2编译为build_branch2.说我目前检查了分支2.现在我签出分支1并更改File1.cpp并重新编译.理想情况下,因为自上次编译它以来只有File1.cpp发生了变化,所以这是唯一应该重新编译的文件.
但是,由于Basic.h由于结帐而更改了时间戳,因此将重新编译包含Basic.h的所有文件.我想避免这种情况.
我犯了一个错误:我应该使用git pull --rebase,但我发布了一个简单的git pull,合并的所有内容,现在在我的分支的HEAD中有一个合并提交.
我想摆脱那个合并提交,我想我只是发出一个git rebase -i HEAD~3,将我的最后一个本地提交移到顶部并将合并提交压缩到它中.唉,合并提交不适用于压缩.如果我这样做,我进入中间状态,我需要再次进行合并,这是很多工作.
有没有办法解决这个问题而不必再次执行合并?似乎应该可以以某种方式使用合并提交?
我正在使用Git,当我尝试使用XCode的源代码控制菜单使用当前分支拉出一个较新的开发分支时,我收到了以下错误消息:
The operation could not be performed because "ProjectName" has one or more tree conflicts.
Run Code Online (Sandbox Code Playgroud)
如何解决这些树冲突?谢谢