我已经在GitHub上创建了一个存储库,并拥有相当广泛的commit / pull / push历史记录,我需要保留该历史记录。
主存储库的所有者创建了一些新分支。如何将这些分支克隆到叉状副本中,而又不删除分叉并从头进行克隆?
新手开源贡献者在这里。
我在 GitLab 上创建了TortoiseGit 存储库,然后将其克隆到我的计算机上,编辑了一个文件,并提交到了 branch master。
几天过去了,我想用上游的最新更改更新我的本地工作副本,然后再推送到我的远程分支并打开合并请求(当然还有更多的开发/测试等)。
我upstream在我的 repo 中添加了一个远程调用,现在我不确定推荐的操作是什么:
git pull从upstream/master到我签出的分支mastergit pull --rebase //git fetch其次是git rebase。这些是我在研究过程中发现的方法。不幸的是,在 GitHub、GitLab 甚至像 Linux 内核这样的项目中工作时,我无法找到对每一个的全面审查,也没有关于哪一个是典型实践的建议。
我尝试了方法 1 和 3。方法 1 ( pull) 生成合并提交(--ff-only不可能),并且我的历史在某种程度上被污染了。这也会造成冲突。方法 3 ( rebase) 两者都没有,但我不确定rebase提交被推送到远程后的行为方式,所以我担心它可能会导致未来出现问题。
所以这是我的问题。
谢谢你。
很多天前,我分叉了 Airflow 存储库,并进行了一些修改,然后提交了 PR。
但今天,我想提交另一个 PR,所以我需要重新 fork 最新的 Airflow 源代码,并放弃我的存储库中的所有更改。
一个笨拙的方法是删除我的存储库,然后再次分叉官方存储库。其实搜索完之后,就不用删除和fork了。
$ git remote add upstream <original-repo-url>
$ git fetch upstream # update local with upstream
$ git diff HEAD..upstream/master # see diffs between local and upstream/master (if there is no diff then both are in sync)
$ git pull upstream master # pull upstream's master into local branch
$ git push origin HEAD # push to your forked repo's remote branch
Run Code Online (Sandbox Code Playgroud)
然而,通过这种方式,我必须git commitbefore git push origin …
对于任何滥用 git 术语的行为,我提前道歉......
我有一个现有的 phpbb 站点。我想克隆他们的 repo,应用我的更改,并创建我自己的 repo,这样我就可以在他们制作它们时应用来自原始 phpbb master 分支的更新,所以我可以维护我自己的自定义。我只是不完全确定我应该按照什么顺序执行此操作。我什至不确定我想做的是一个叉子吗?
我想要的是:
我知道他们主分支中的文件我需要更改以使站点成为我自己的站点。所以这就是我认为它应该如何工作,尽管它可能不会,因为我永远不会在不寻求帮助的情况下正确处理这些东西:
我有一个开发、几个测试和一个生产机器,所以我想要一种更简单的方法来使所有这些代码保持最新。
在标记为重复之前,请先阅读此内容
我知道在/sf/ask/507102501/有一种针对CMD的解决方案,但我要求使用GitHub Desktop,如果您无法回答,不要标记为重复
我是开发的新手,我听说Git和GitHub学习了非常基础的知识,然后下载了GitHub Desktop。我改进了的某些功能,然后将本地存储库与GitHub分支存储库进行了同步,此后,我发出了请求请求,我的添加被接受并合并到原始存储库中。我添加了许多新功能,所有合并请求都合并了。
这是悲伤故事的开始:(在十天后,当我在GitHub网站上打开我的Forked Repo时,我看到的是:
之后,我在网上搜索了许多小时,但找不到GitHub Desktop的解决方案,我知道有大量有关CMD的教程,但是我需要知道如何与GitHub Desktop Application中的原始Repo同步?
我是新来的,所以很抱歉,如果我问一些愚蠢的事情:)谢谢
我似乎无法通过ssh密钥身份验证从上游获取更改.
我可以添加回购就好了:
$ git remote add upstream git@github.com:user/repo.git
Run Code Online (Sandbox Code Playgroud)
我的ssh文件夹的内容似乎没问题:
$ ls ~/.ssh
authorized_keys id_rsa id_rsa.pub known_hosts
Run Code Online (Sandbox Code Playgroud)
登录工作完美:
$ ssh -T git@github.com
Hi user/repo! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
但是从上游获取不起作用:
$ git fetch upstream
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这不是这个的重复,也不是我在 SO(和外部)上找到的任何其他内容。
我从另一个存储库(我们称之为“上游”)创建了一个 github 分支(假设是“起源”)。时间过去了,我希望上游的起源发生变化。今天,github 有一个漂亮的“获取上游”按钮,可以更新我创建原始分支时存在的分支,并且单独更新它们。
github文档列出了据称相当于“获取上游”UI 的命令:
$ git fetch upstream
...
$ git checkout main
...
$ git merge upstream/main
Run Code Online (Sandbox Code Playgroud)
那么“获取上游”UI 不会尝试更新非默认分支?更不用说创造新的了?
通过命令行实现此目的的正确方法是什么?(我将原点和上游设置为遥控器,并做了一个fetch --all)
有没有地方可以让我们和 github 开发者自己讨论这个问题?我找不到合适的仓库(他们有 400 多个)。在我看来,这是一个有价值的潜在改进。
我们要求班上的学生使用github来保存他们所有的课程项目代码.每个学生都创建了他的回购.(我想我应该创建回购并创建团队,这是我的错误).然后,我在我的组织下分配了每个回购.
我认为,当学生更新原始回购时,我可以简单地进行更改.我认为我对拉力如何运作的理解是错误的.
在下图中,我可以看到,学生已经更新了自己回购了一些新的文件,但有什么办法,我可以简单地更新我已付出了回购?

git ×6
github ×5
bitbucket ×1
git-clone ×1
git-fork ×1
open-source ×1
phpbb ×1
repository ×1
ssh-keys ×1