考虑的分支位于已发布的存储库服务器中.
考虑一个分支A,它包含一组从中创建分支B的提交.额外提交被添加到分支B(假设它们处于活动开发中)此时,将向分支A添加提交.
现在,分支A在分支B后面,让我们说10次提交,而分支B在分支A后面通过一次提交.
现在这两个分支无法合并,因为它们至少只有一个提交就可以了.为了使所有内容保持同步,如何合并分支A和B?
我正在想办法在 git 中使用分支。当时我在 master 中有不相关的提交,我还没有准备好推送,但我不得不做一个错误修复。我不想创建一个新的 repo 只是为了做一个小错误修复,所以我创建了一个基于 origin/master 的分支
git checkout -b example origin/master
根据我的理解,这会创建一个基于 origin/master 分支的分支,并切换到示例分支。
然后我去做了我的修复,提交并测试了它。
$ git status
On branch example
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
然后我去把它推给主人。
$ git push origin master
但是我没有在示例分支中推送提交,而是找到了这个
$ git status
On branch example
Your branch and 'origin/master' have diverged,
and have 1 and 3 different commits each, respectively.
(use "git pull" to merge …Run Code Online (Sandbox Code Playgroud) 我听说git push -f如果可能的话,推力()是一种危险的做法.话虽如此,如果在一个小团队之间共享一个私人仓库,那么这样做的安全程序是什么?我想它会是这样的:
有人可以完成此程序或废弃它并提供更好的程序吗?我正在寻找最简单的安全程序.
我已经使用这个命令一段时间来将我的代码推送到 Gerrit 中。
git push origin HEAD:refs/for/branch
Run Code Online (Sandbox Code Playgroud)
然而,最近我正在开发一个没有 Gerrit 管道的基础设施。我可以进行推送,但我无法在 git 上看到分支。当我跑步时:
git push origin branch
Run Code Online (Sandbox Code Playgroud)
git上可以看到。我正在本地创建的新分支上尝试此操作。
我想从 master 之外的不同分支中提取代码,即有两个分支 master 和 dummy,master 分支是在 dummy 分支之前的一些提交,而 dummy 包含一些不在 master 分支中的提交,那么我如何提取这两个分支本地分支与不同的提交一样。
我尝试首先创建虚拟分支并从远程拉取该分支,但随后它包含来自主分支的提交
git clone repolink
git checkout -b dummy
git pull upstream dummy
我知道除了 master 之外还可以使用不同的分支进行克隆
git clone --branch dummybranch --single-branch repolink
有什么方法可以在单个本地存储库中包含具有不同提交的两个分支吗?
$ git push -u origin master
To https://github.com/XXXXXXXXX.com/FirstRepo.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/XXXXXXXXX.com/FirstRepo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我今天第一次使用 github,我已经检查了其他答案,其中只有一个似乎有效,那就是使用“git push origin master --force”,但通过这样做,它会删除所有其他提交。那么有人可以告诉我这个问题的解决方案吗?
我已经开始使用git push --force-with-lease而不是--force在大多数情况下用于额外的分支保护:
我什至可以尝试将此选项设置为默认选项,如下所述:
但使用时的主要烦恼--force-with-lease是输入该标志的尴尬措辞和冗长语法。
Git--force和-f标志更短并且更容易键入,但不提供额外的安全性。
是否有缩写形式--force-with-lease,例如--fwl?
如果默认情况下不存在这样的标志,我如何在自己的计算机上创建这样的标志或别名?
我使用生成的个人访问令牌将原始远程存储库克隆到本地存储库。现在我想将提交更改推送到我的远程存储库,git 要求输入密码。
我在这里搜索,找到了将我的原始 URL 从 SSH 设置为 HTTPS 的帮助;
git remote set-url origin https://<PERSONAL_ACCESS_TOKEN>@github.com/<Username>/<repo>.git
Run Code Online (Sandbox Code Playgroud)
git remote -v我使用现在的显示确认了更改
origin https://ghp_kGuXXXXXXXXXXXXXXXXXXXXXXX8dd@github.com/<correct_user>/<right_repo>.git (fetch)
origin https://ghp_kGuXXXXXXXXXXXXXXXXXXXXXXX8dd@github.com/<correct_user>/<right_repo>.git (push)
Run Code Online (Sandbox Code Playgroud)
尽管如此,当我尝试时git push仍然要求输入密码。请我需要帮助。我已经很沮丧了。如何在没有密码提示的情况下使用 PAT 推送到我的远程存储库。
* 84b134d - (HEAD, origin/lab_master, lab_master) comment macro defination which is protent to be a fun
|\
| * 735d88f - add small script to ease ctag related option (13 minutes ago)
* | 6623a94 - add small script to ease ctag related option (4 minutes ago)
|/
* 0d0913a - add gitignore to ignore ctags file (57 minutes ago)
Run Code Online (Sandbox Code Playgroud)
735d88f是--amend提交,但是此时发生冲突,为什么?
我只有一台PC,而且我总是在上面编辑文件,我也只有一个本地存储库,此外,此存储库仅在此处使用,我认为不可能发生冲突吗?
但是发生了,为什么呢?
我正在开发一个Rails项目!
不加的借口 .gitignore
我不小心承诺并将其推入database.yml我的功能分支.几天前从feature分支到master分支创建了拉取请求,但尚未合并.作为此pull请求的一部分,有多个提交已完成,包含'database.yml'的提交是最后一个提交.
其他人也在这个项目的一部分工作,他们正在将变化合并到主人,我们正在将这些变化拉到我们的功能分支之间.因此,在我们的功能分支中,我们有来自其他人的提交,这些提交是在错误提交之后完成的.
所以我希望再次使用' git rm'和' git push'相同的文件来解决这个问题(因为PR还没有合并).这会产生问题吗?
git ×10
git-push ×10
git-pull ×3
git-branch ×2
github ×2
push ×2
gerrit ×1
git-amend ×1
git-commit ×1
git-merge ×1
git-remote ×1