我刚刚开始学习git版本控制,我正面临着这个问题.鉴于以下分支结构(取自免费书籍):

我们假设C4/C5提交改变了index.html文件的相同部分.
git checkout master
git merge iss53
Run Code Online (Sandbox Code Playgroud)
如果我理解它,我需要手动解决冲突.这本书讲述了冲突文件.这个冲突文件在哪里?鉴于以下冲突,如何:
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html
Run Code Online (Sandbox Code Playgroud)
我可以丢弃HEAD的所有更改,仅将"iss53"分支的更改合并为"master"吗?如何编辑这些行?
我可以使用以下命令删除分支吗?
当地分公司:
git branch -d <branchName>
Run Code Online (Sandbox Code Playgroud)
远程分支:
git push origin --delete <branchName>
Run Code Online (Sandbox Code Playgroud) 我读过后者比较了从它们的祖先开始的分支。这到底是什么意思呢?
好的,这是我的场景:
第 1 步 - 在 Git master 上,状态是最新的
第 2 步 - 处理项目并需要添加功能
第 3 步 - 创建分支,在新分支上构建功能
第 4 步 - 切换回 master,新功能中的文件/文件夹仍然存在。有没有搞错?
所以我的问题是,我没有将分支合并到 master 中,但分支文件/文件夹出现在 master 中。这是正常的吗?
我期望的行为是未合并的文件保留在各自的分支中,并且在合并之前不显示。我将对此进行更多实验。也许我在想更多的 GitHub 并且需要考虑更多的 Git。也许我需要阅读更多关于分支和合并的内容。显然还在那里学习 Git。
我尝试从我的项目中删除几个分支:
leo:Project leo$ git push origin --delete effects
To https://github.com/gituser/Project.git
- [deleted] effects
leo:Project leo$ git push origin --delete viewport
To https://github.com/gituser/Project.git
- [deleted] viewport
Run Code Online (Sandbox Code Playgroud)
但在fetch --prune那之后说
获取后,删除远程不再存在的任何远程跟踪引用.
我仍然在本地机器上删除了分支:
leo:Project leo$ git fetch -p
leo:Project leo$ git branch -a
develop
effects
* master
viewport
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
有什么建议?
git branch告诉我,我是主人.我写git checkout -b newbranch.
git branch告诉我,我在新创建的分支newbranch.我写了git pull并得到以下错误:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> newbranch
Run Code Online (Sandbox Code Playgroud)
我想这是因为我无法从我刚刚创建的分支中拉出来.所以我编写git pull origin master并获得了一百万个不同分支master和newbranch的文件(使用我的完整控制台,所以我看不到错误的开头),结果如下:
Please move or remove them before you …Run Code Online (Sandbox Code Playgroud) 我试图了解如何在Git中创建映射到我的开发过程的目录结构.
顺便说一句,我是Git的新手,但不是源代码控制.
我使用GitLab作为我的存储库管理器.
我已将我的存储库添加到GitLab并成功克隆了存储库.
我想要创建的开发过程如下:
主人| 完成| QA | INT
每当有人克隆存储库时,他们将自动看到这个分支结构并将在int分支上工作.
我已经尝试运行命令,认为它会创建结构,但它不会出现(也许我错了).
git checkout -b Done master
git checkout -b QA Done
git checkout -b INT QA
git branch
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Done * INT QA master
无论如何,我假设我错过了一些简单的东西(希望如此).
有没有人对如何设置这个简单的分支层次结构有任何见解?
谢谢
我有两个分支主和主干。
我在本地创建了另一个分支,git checkout -b new_branch origin/master用于在该分支中获取主代码。
我在这个新分支中添加了一些更改并推送为:
git add --all
git commit -m "my custom message"
git push origin new_branch
Run Code Online (Sandbox Code Playgroud)
现在我只需要在我的主干分支中合并这个提交 id 更改(在分支 new_branch 中)。
我知道git cherry-pick。任何人都可以确认以下程序是否正确:
第 1 步:我必须使用git checkout trunk
第 2 步切换到主干分支:现在使用git cherry-pick MY_COMMIT_ID
第 3 步合并提交 ID :现在使用git push origin trunk
第 4 步将这些更改推送到主干:现在git pull origin trunk在远程服务器中使用
根据一些研究,我发现 git 在两个地方保留了两个版本的代码:
.git/refs/heads (本地存储库) .git/refs/remotes/ (工作目录)首先,我的理解可以吗?
然后我需要知道两者head并working directory指的是哪个分支。有两个命令:
cat .git/head
git branch
你能告诉我这两个命令指的是哪一个吗?(在 中的分支head或在 中的分支working directory)?
当您运行时git status,您的更改是否会与head或 中的版本进行比较working directory?
我使用该git log --graph --all命令来可视化我的提交/分支历史记录。然而,虽然我理解图表显示的大部分内容,但我很难解释分支可视化的某些部分。
我难以解释的分支是:
a) 提交 309a287
b) 提交 3f7475
c))在 e9415f 中的解释
我也有点困惑为什么似乎有三个分支(三个垂直的平行线),因为我同时只有一个主分支和一个额外的分支。
|
| * commit 88531a7dc85d030016296a51c5c433b72c7186c5 (refs/stash)
|/| Merge: c501f9f 631678b
| | Author:
| | Date: Wed May 20 17:01:59 2020 +0100
| |
| | On blackforest: ddd
| |
| * commit 631678b558576418c21496712db524eb86a755ec
|/ Author:
| Date: Wed May 20 17:01:59 2020 +0100
|
| index on blackforest: c501f9f induced typo
|
* commit c501f9fc6b817541d8cb6a466c77b8d84231afcb (origin/blackforest)
| Author:
| …Run Code Online (Sandbox Code Playgroud) git ×10
git-branch ×10
branch ×3
cherry-pick ×1
git-add ×1
git-commit ×1
git-fetch ×1
git-log ×1
git-merge ×1
git-pull ×1
gitlab ×1
merge ×1