我想我已经阅读了一些教程,但我仍然停留在一些完全基本的东西上(我几乎从不使用命令行 git,所以请耐心等待;))。
我想做的就是从上游存储库将我的 fork ( https://github.com/abelbraaksma/visualfsharp ) 更新到最新版本的 Master ( https://github.com/Microsoft/visualfsharp )。由于我有一些我不关心的本地更改,因此我决定创建一个新的克隆(以前我使用过 GUI 工具,但它们是如此令人困惑和限制,以至于我放弃了它并一头扎进了 git 命令的森林中;)。
我做了:
cd /D/Projects/OpenSource/VisualFSharp2
git init
git clone https://github.com/abelbraaksma/visualfsharp
git fetch https://github.com/Microsoft/visualfsharp
git remote add upstream https://github.com/Microsoft/visualfsharp
git remote add origin https://github.com/abelbraaksma/visualfsharp
git fetch upstream
git checkout master
git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
最后两个命令给出:
git checkout master
已经在“master”上
您的分支已更新为“upstream/master”。
git merge upstream/master
已经是最新的了。
我意识到我做了一些事情的顺序是错误的,而且由于我来自 SVN 和 Mercurial 世界,我经常对术语感到困惑。
我知道目前我处于上游仓库的“master”状态。但我需要从上游存储库合并到原始(我的分支)存储库中。我认为我需要将本地副本更新为我的叉子的头部(但git checkout master没有这样做)。
我在哪里感到困惑或更好,我得到了什么命令?
做git remote -v给我:
Run Code Online (Sandbox Code Playgroud)origin https://github.com/abelbraaksma/visualfsharp …
我在 Git 上创建了一个新的远程存储库 ('myRepo')。我选中了“添加 README.md”复选框,这也对此“myRepo”存储库进行了提交。
然后我创建一个新文件夹,在其中添加一些文件并执行以下操作:
git init
git add .
git commit -m "init"
git remote add origin https://github.com/jozinho947/myRepo.git
# get the READ.me fetched on the 'origin/master' branch locally
git fetch
# get the READ.me merged in my local 'master' where i'm pointing
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
然后我有这个错误:
fatal: refusing to merge unrelated histories
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我不能这样做,以及如何解决这个问题。
我正在尝试下载我在本地目录上的bitbucket上传的项目.据我所知git fetch,它应该下载项目(但不是merge它).
好吧,我也有一个与我的存储库的连接,这就是我所做的:
这是以下结果git fetch:( 如上图所示)
$ git fetch
remote: Counting objects: 114, done.
remote: Compressing objects: 100% (104/104), done.
remote: Total 114 (delta 6), reused 114 (delta 6)
Receiving objects: 100% (114/114), 10.32 MiB | 2.03 MiB/s, done.
Resolving deltas: 100% (6/6), done.
From https://bitbucket.org/lamtakam/lamtakam
* [new branch] master -> origin/master
Run Code Online (Sandbox Code Playgroud)
但没有下载..!为什么?如您所见,我的本地目录为空(.git文件夹除外).怎么了?
我知道之间的区别git pull和git fetch.
但我想知道,哪一个是优先考虑的?
因为git pull在我不知情的情况下自动合并.这就是我发现的不同.git fetch不会这样做.还有别的事吗?
我正在尝试在不克隆的情况下获取特定提交哈希的 git 存储库!每个示例都想克隆整个存储库。这是有道理的,但我想要的存储库很大,我需要它留下一个小的足迹,因为它与 Docker 镜像一起使用。
提交哈希在 URL 中 - 或者wget可以curl/应该递归获取,但我有一种感觉 github 正在阻止它,因为我得到的只是robots.txt
回购和提交:
https://github.com/phalcon/cphalcon/tree/1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
我最好的尝试错误:
git fetch https://github.com/phalcon/cphalcon/ 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
error: Server does not allow request for unadvertised object 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
Run Code Online (Sandbox Code Playgroud)
更新
使用克隆的答案建议并不能回答问题。我可以克隆/结帐没有问题。尝试在本地没有整个存储库的情况下执行此操作
如果两个人在 github 上的同一个存储库和同一个分支 master 上工作。然后说 A 将他们的更改推送给 master,而我作为 B,我如何在调用后检查更改的文件git fetch?
如果我做:
git fetch
git merge master origin/master
Run Code Online (Sandbox Code Playgroud)
我得到这一行:
aa@DESKTOP-KQQ0A3T MINGW64 ~/..
$ git merge master origin/master
Merge made by the 'recursive' strategy.
src/main.js | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Run Code Online (Sandbox Code Playgroud)
我喜欢src/main.js以这种方式描述差异的方式,但该信息仅在我合并时出现,所以我的问题是,在进行合并之前,我应该使用什么命令来查看有关差异的相同信息?
我在 GitLab 上有一个存储库,我也在 GitHub 上发布了它。
到目前为止,我使用的所有 Git 命令都在 GitLab 上进行了更改。但是,我希望在 GitHub 上进行这些提交。
我试过命令:
git remote set-url origin git@github.com:repo-url
Run Code Online (Sandbox Code Playgroud)
有人可以建议我如何设置 URL 以便命令可以在 GitHub 而不是 GitLab 上运行吗?
我有一个 GitHub 存储库,我将其作为另一个存储库的子模块克隆到我的计算机上。
我在本地拥有所有文件和提交,但在远程,我的 git 客户端认为没有任何分支。(git branch -r什么也没显示)
git fetch origin给出这个结果:
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch origin
From https://github.com/Estecka/ChainMaths
* branch HEAD -> FETCH_HEAD
Completed successfully.
Run Code Online (Sandbox Code Playgroud)
但实际上,我仍然没有找到任何分支。
尝试推送我的本地更改成功,我可以看到我的更改反映在 GitHub 网站上,但即使如此,我的 git 客户端仍然无法在远程找到任何分支,即使是刚刚推送的分支。
这不是我第一次遇到子模块的问题,而且我从未在经典存储库中遇到过它。
在 IntelliJ 中,我正在从一个名为 的远程分支开发一个新分支stage。我的分行叫PM-43655-stage. 我承诺了我的改变并做到了git push -u origin PM-43655-stage。它创建了一个到分支的合并请求stage。现在它显示源分支比目标分支落后 2 个提交。
但不存在合并冲突。
我对git pull和感到困惑git fetch,我不知道在这种情况下该怎么做。
我是git的新手,我一直在关注这个教程.
在我到达远程存储库之前,我想我理解了大部分内容.关于我理解的远程存储库的唯一概念是git fetch和git remote.根据该教程,git fetch通过git remote的add选项从指定的url获取远程存储库.它将存储库下载到"远程"分支.如果我理解正确,它不是远程存储库中的分支,而是我从远程存储库下载的分支.它还不是我本地存储库的一部分,它仍然可以合并/重新绑定到它(我的本地存储库).也许我错了,我在这里遗漏了一些东西,请随时纠正我.
现在,我觉得我根本不理解的是git如何设法将"远程"存储库重新绑定到我的本地存储库中.
我理解当我对一个分支进行rebase时,它会将该分支中的提交基于它最初分支的不同提交.我仍然需要将分支合并到我的主分支中.我做的时候会发生什么?
git checkout master
git fetch origin
git rebase origin/master
Run Code Online (Sandbox Code Playgroud)
难道这不会将我的本地主分支变成远程主分支吗?我一直在想这张照片.
而不是功能我将拥有我的本地主分支而不是主,我将拥有远程origin/master分支.除了Master没有真正分支出原点/主人.
这不会删除我当地的分公司主人吗?这不会将我的所有工作都转移到"远程"存储库吗?另外,在将其推送到真正的远程存储库之前,我不需要合并回来?
git ×10
git-fetch ×10
git-pull ×3
git-remote ×3
github ×3
git-merge ×2
bitbucket ×1
git-checkout ×1
git-clone ×1
git-push ×1
git-rebase ×1