Git分支合并及一些报错

分支

git branch 						# 列出本地分支
git branch -r					# 列出远程分支
git branch -a					# 列出both

git branch name					# 创建新的本地分支
git branch -d name  			# 删除指定本地分支

git checkout hhx				# 切换到 hhx 分支 [ 切换 HEAD 指向 ]

# Merge branch 'dev' into feat_comparative_search
将dev合并至feat_comparative_search

# 在本地建立一个分支, 追踪指定的远程分支
git checkout -b newBranch origin/originBranch

# `git fetch origin` fetches any new work that has been pushed to that server since you cloned (or last fetched from) it.
# It`s important to note that the `git fetch` command only downloads the data to your local repository — it doesn’t automatically merge it with any of your work or modify what you’re currently working on.
# You have to merge it manually into your work when you’re ready.
git fetch

# To create a new branch and switch to it at the same time
git checkout -b newBranchName

创建并切换到新的分支,将git branch newbranch 创建分支和git checkout newbranch 切换分支合在一起的结果。
Git分支合并及一些报错_第1张图片
.git/HEAD 文件的内容是 当前所在的分支,随着分支切换,文件内容会动态发生变化。
.git/refs/heads 文件夹中是 本地的所有分支,分支文件的内容是各自指向的 commit 的 hash值。
HEAD指针永远指向当前所在的分支。
切换分支,Git 会用该分支的最后提交的快照,替换工作区的内容。

合并情形1:Fast-Forward

Git分支合并及一些报错_第2张图片
在分支 dev 的工作结束,切换到分支 master ,然后把 dev 合并到 master 上

$ git checkout master
Switched to branch 'master'
$ git merge dev

由于当前 master 分支所指向的提交是你当前提交(dev的提交)的直接上游,所以 Git 只是简单的将 master 指针向前移动。
换句话说,当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候,只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。
合并结果如下
Git分支合并及一些报错_第3张图片

合并情形2:非 “快进”

Git分支合并及一些报错_第4张图片
当在新分支 dev 进行了一次提交B3,再回到分支 master 又进行一次提交 B4。
这里用 git merge 合并分为两种情况:

  1. 在 master 分支和 dev 分支的公共祖先 B2 后,master 和 dev 的提交是对不同文件或者同一文件的不同部分进行了修改,Git 可以合并它们。
  2. 在 master 分支和 dev 分支的公共祖先 B2 后,master 和 dev 的提交是对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。
    Git分支合并及一些报错_第5张图片

一些报错

@gitee用户名: Incorrect username or password (access token) fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git/’
验证的时候那个用户名不要带 @。
git branch 无反应,说明还没有进行commit 过。

.gitignore

有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪(Untracked)文件列表。
创建一个名为 .gitignore 的文件
文件 .gitignore 的格式规范:

使用 # 进行注释

/.idea/		忽略根目录下的.idea目录
*.iml		忽略所有iml文件

* 匹配零个或多个任意字符
[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
? 只匹配一个任意字符

Git:合并分支
Git 分支
Git 分支讲解
git简单使用
git - 简易指南
日常工作中常用git命令小结
Git 主分支上创建分支并提交代码
npm常用命令与操作
git checkout详解
.gitignore语法说明
.gitignore语法
.gitignore文件语法
git合并远程分支
AutoMergeFailed,FixConflictsAndThenCommitTheResult
git修改分支名称
git修补历史提交
Git修改已提交commit的信息

你可能感兴趣的:(Linux和Git,git,github,linux)