我想要的是:
使用我的本地存储库在所有分支中更新服务器的所有新闻提交,但不合并任何分支(只需加入历史记录行).
我正在尝试这个命令
git fetch --force --progress --verbose name@host:/path/to/repository.git
Run Code Online (Sandbox Code Playgroud)
我认为它会正常工作,因为它显示:
From host:/path/to/repository
* branch HEAD -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
但是,这意味着什么呢?如果我看到日志,则不会更新.如果我从服务器进行克隆,则所有新提交都在那里.所以...命令不起作用.然后我尝试使用服务器中存在但不在我的本地存储库中的分支
git fetch --force --progress --verbose name@host:/path/to/repository.git my_branch
Run Code Online (Sandbox Code Playgroud)
结果是:
From host:/path/to/repository
* branch my_branch -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
并且任何成功......即使我不知道所有分支和我的分支都是更新,我想获取此更改并可以在我的日志中看到.
有什么想法吗?
我已经在我的Git存储库中的master分支上工作了一段时间.它托管在GitHub上并克隆在我的两台计算机上.现在我在一台计算机上启动了一个新分支并将其推送到GitHub.现在他们知道两个分支,但另一台计算机仍然只知道主分支,而不是功能分支.
当我尝试从GitHub中提取功能分支时,Git会将它合并到我的主人身上,这不是我想要的.
如何从GitHub下载功能分支到我的本地存储库并最终拥有两个分支并且没有合并?我准备将它们合并,而不是现在.
如果可能的话,我对如何处理TortoiseGit很感兴趣.
在 JavaScript 中,对象和数组的值可以像下面这样进行索引:objOrArray[index]。是否存在身份“索引”值?
换句话说:
是否有一个值x使得以下内容始终为真?
let a = [1, 2, 3, 4];
/* Is this true? */ a[x] == a
let b = { a: 1, b: 2, c: 3 };
/* Is this true? */ b[x] == b
Run Code Online (Sandbox Code Playgroud)
此上下文中身份的定义:https: //en.wikipedia.org/wiki/Identity_function
我是Git的新手,无法理解如何使用Git.我一直在使用CVS,因此需要为Git学习一些学习曲线.这就是我所尝试的一切
现在我只更改了两个文件PromoServiceImpl.java和build.sql.但是合并有问题从"产品"分支改变了.
您看到的剩余文件(如ApiServiceImpl.java等)是来自其他用户的更改,但我不确定此处的表示是否表明我已更改它们.问题是它在早期的pull命令中合并了,现在它希望我提交它们?
无论我遵循什么命令流(即使在谷歌搜索之后),我都会看到以下错误:
您尚未完成合并(MERGE_HEAD存在)请在合并之前提交您的更改.
这是我遵循和输出的命令序列(试图通过插入新行供每个人阅读来使其漂亮).即使在重新从存储库中进行更改之后,这个错误也会回来,所以我确信我做错了而不是git的一些问题.
kamal@kamal-Lenovo-G470:~/git/TryGit$ gs
# On branch product
# Your branch is ahead of 'origin/product' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: TryGitServices/src/main/java/com/TryGit/services/promo/impl/PromoServiceImpl.java
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Adding
no changes added to commit …Run Code Online (Sandbox Code Playgroud) 我从来没有能够得到这个问题的明确答案.
很长一段时间,在同事的建议下,我一直这样做:
git fetch origin
git pull origin <mybranch>
Run Code Online (Sandbox Code Playgroud)
我被告知(并且已经看过)git pull如果你不先做的话,表现不一样git fetch.您没有得到任何远程更改.
但我在网上看到的git pull就是相当于git fetch其后的东西git merge.如果这是真的,那git pull将包括git fetch,我不需要明确的git fetch第一个,对吗?但事实似乎并非如此.
所以我正在寻找的是一些描述观察到的行为的明确文档git pull.(我知道我可能也会提出很多建议切换到git fetch→ git merge;这也很好,但我真的很感兴趣git pull.)
\n\nGitHub 现在支持 SSH 提交验证,因此您可以使用自行生成的 SSH 公钥在本地签署提交和标签,这将使其他人对您所做更改的来源充满信心。如果提交或标签具有可加密验证的 SSH 签名,GitHub 会将提交或标签设为“已验证”或“部分验证”。
\n如果您已使用 SSH 密钥通过 GitHub 进行身份验证,现在可以上传相同或不同的密钥对\xe2\x80\x99s 公钥以将其用作签名密钥。您可以添加到帐户的签名密钥数量没有限制。有关更多信息,请访问GitHub 文档中的SSH 提交验证。
\n
鉴于最近发生的事件,我想知道:使用 SSH 密钥与 GPG 密钥签署提交之间有什么区别?
\n注意: 这是一个类似的问题,询问 GPG 和 SSH 之间的一般差异。这个问题具体是关于使用其中一种或另一种进行签名之间的区别。
\n所以 - 有人可以澄清这个:
我跑:
git pull origin master
git status
Run Code Online (Sandbox Code Playgroud)
然后它就会提出改变并说:
your branch is ahead of origin/master ... blahblah by 6 commits...
Run Code Online (Sandbox Code Playgroud)
当我跑的时候
git fetch
git status
Run Code Online (Sandbox Code Playgroud)
它说:
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
所以 - 我认为git pull默认情况下会执行git fetch - 那么为什么它会在没有额外的情况下"提前6次提交" git fetch呢?
我正在从TortoiseSvn迁移到TortoiseGit.但是遇到了一些意想不到的困难.
我的工作范例很简单:
为什么要在syntactically下面提供3个类似的命令呢?
而且Pull和Fetch甚至共享相同的图标.多么人性化的设计!
所以情况如下:
$ git status #On
branch master
#你的分支在[x]提交之前位于'origin/master'之前.
#
关于SO的问题已有几个问题,但似乎没有一个问题专门针对我所拥有的场景类型.其中一个问题的答案最接近,但没有详细说明.
我会直接引用它:
如果在执行"git pull remote branch"后收到此消息,请尝试使用"git fetch"进行跟进.
Fetch似乎更新了远程分支的本地表示,当你执行"git pull remote branch"时不一定会发生这种情况.
这个提示确实有效.但"不一定会发生吗?" 为什么不?我需要了解这一点.什么拉不做?
我不想接管这个问题,所以这是我的详细情景:
涉及三台电脑.我开发的Mac,git repo(即origin/master)所在的家庭服务器以及从该服务器获取的Webfaction帐户.
我提交并且git push origin master仅在Mac上提交.作为正常工作流程的一部分,在Webfaction上运行的唯一命令是git pull origin master(作为Fabric部署脚本的一部分).我不修改那里的代码.我是一个独立的开发者,所以其他任何人都没有.
我偶尔会登录Webfaction并检查一些事情,包括a git status.不可避免地,我总是得到"你的分支在前面......"的信息.跑步git fetch使消息消失.
我将要添加git fetch到Fabric脚本来完成这个问题,但我想知道为什么需要这样做,特别是在源/主的只拉式克隆上.虽然我每天都使用基本功能,但我并不熟悉Git,所以我们将非常感谢新手友好的解释.
按要求更新,相关位来自config:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@[server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud) 我喜欢使用CLI与GIT进行交互,但我正在尝试理解VS Tools for Git扩展,以便一些不喜欢'CLI'的团队成员受益.
用于Git扩展的VS Tools的UI具有标记的操作FETCH,PUBLISH并且听起来像PULL和PUSH,但UI中还有其他操作被标记PULL,PUSH因此猜测很弱.
到目前为止,我认为我的混淆不是与Git混淆,而是与VS的Git工具混淆.我可以在CLI中完成我需要完成的任务,但我永远不会记得做一个FETCH或一个PUBLISH动作.
我有点新的Git的,但这些条款FETCH和PUBLISHGit的白话文甚至一部分?