安陆网站建设推广,平面设计师要学哪些软件,动易初级中学网站模板cms 6.8,老网站不要了做新站需要怎么处理分支1. 分支名2. 创建分支-git branch3. 查看分支-git show-branch4. 检出分支4.1 有未提交的修改时进行检出4.2 合并变更到不同的分支git checkout -m5. 分离HEAD 分支6.删除分支分支操作命令概览
git branch # 列出版本库中的分支
git branch -r # 列出远程跟踪分支…
分支1. 分支名2. 创建分支-git branch3. 查看分支-git show-branch4. 检出分支4.1 有未提交的修改时进行检出4.2 合并变更到不同的分支git checkout -m5. 分离HEAD 分支6.删除分支分支操作命令概览
git branch # 列出版本库中的分支
git branch -r # 列出远程跟踪分支
git branch -a # 列出版本库中的分支和远程跟踪分支
git branch branchname1 # 新建一个branchname1 分支
git branch branchname3 [starting CID] # 基于starting CID新建 branchname3分支
git checkout branchname1 # 切换到branchname1分支又叫检出xxx分支
git checkout -b newbranchname # 新建一个分支并切换到该分支
git branch -d branchname2 [starting CID] # 删除分支git checkout -- file1 # 检出索引中的文件file1
git checkout commit_x -- file1 # 检出commit_x中的提file1分支是软件项目中启动一条单独开发线的基本方法。
**分支-**动态名字随着每次的提交移动跟随你持续开发的过程。 **标签-**静态名字不随着时间的推移而改变一旦应用不应该对它做任何改动可用于标识拥有关键差异特征的提交点位。
可以使用同一个名字来命名分支和标签但是不推荐。
1. 分支名
默认分支是master(正在改为main)分支名字始终指向改分支上的最近提交版本。 使用层次分支- bug/pr-1023, bug/pr-17 这种层次分支支持通配符选择。
路径层次分支命名具有一些通用的规则分支命名规则由 git check-ref-format 底层命令强制检测。
2. 创建分支-git branch
在任何时候版本库中只有一个分支是活动的。活动分支决定了工作目录里的检出文件。 当需要把本地分支发布需要显示指明发布分支的名称。
git branch prs/pr-1138 [starting commit] # 基于starting commit 新建 prs/pr-1138分支
# starting commit 缺省 默认为当前分支上的最近提交
# git branch 创建分支后需要显示才会切换为git branch 不带分支名称时可用于列出版本库中的分支名带星号的分支名标识当前的活动分支。
git branch # 列出版本库中的分支
git branch -r # 列出远程跟踪分支
git branch -a # 列出版本库中的分支和远程跟踪分支3. 查看分支-git show-branch
按时间顺序\列出对一个或多个分支有贡献的提交。同样可以带-r和-a两种可选参数。 \
git show-branch # 该输出被破折号分为两个部分,.....
* [alternate] Initial 3 line file # 方括号中的为分支名后面跟着最近一次提交! [master] Another file # * 标识当前活动分支上的提交
-- # 表示提交在一个分支中【说的什么话】 [master] Another file # - 表示一个合并提交
* [alternate] Initial 3 line filegit show-branch bug/pr-1 bug/pr-2 # 查看两个分支的提交信息支持通配符匹配更多的分支4. 检出分支
工作目录一次只能反应一个分支。git checkout用于切换不同的分支。它改变了工作树文件和目录结构来匹配切换分支。git checkout branchname 实现改了通过分支名来检出分支头部。
4.1 有未提交的修改时进行检出
工作目录里未被追踪的文件的目录始终会被置之不理git不会删除或修改他们。如果一个文件在本分支上修改了但是没有被新分支追踪git 会发出错误信息并拒绝检出到目标分支。
$ git checkout dev
error: Your local changes to the following files would be overwritten by checkout:git_checkout_test
Please commit your changes or stash them before you switch branches.
Aborting$ cat git_checkout_test
git checkout test
$ git diff git_checkout_test
diff --git a/git_checkout_test b/git_checkout_test
index e69de29..9747ad6 100644
--- a/git_checkout_testb/git_checkout_test-0,0 1
git checkout test$ git show dev:git_checkout_test # 查看另一个分支中的文件
fatal: path git_checkout_test exists on disk, but not in dev解决方法 1.提交新的更改到当前分支 2.提交新的更改到另一分支 a). stash b). 合并变更到不同的分支。
4.2 合并变更到不同的分支git checkout -m
-m 选项将 本地修改合并到目标分支的工作目录中并留下合并冲突指示[可能会没有]我们需要进一步解决存在的冲突。
% git checkout dev
error: Your local changes to the following files would be overwritten by checkout:git_checkout_test
Please commit your changes or stash them before you switch branches.
Aborting
% git checkout -m dev
A git_checkout_test
M hello.txt
Switched to branch dev
# dev 分支上修改文件再想切换回master分支 执行合并切换操作不行啊。
% git checkout -m master
fatal: cannot continue with staged changes in the following files:
git_checkout_test hello.txt在master 分支中编辑文件突然意识到需要将所有的修改提交到dev2分支上那么就新建并切换到新的分支上。
% git checkout -b dev2
Switched to a new branch dev2
% git status
On branch dev2
Changes not staged for commit:(use git add file... to update what will be committed)(use git restore file... to discard changes in working directory)modified: git_checkout_testno changes added to commit (use git add and/or git commit -a)5. 分离HEAD 分支
git checkout branchname 实现改了通过分支名来检出分支头部。git checkout 可以检出任何提交如果检出的提交不是该分支的头部Git 会创建一个分离的HEADdetached HEAD,以下的情况Git都会创建一个分离的HEAD
检出的提交不是分支的头部检出一个追踪分支检出一个标签引用的提交使用git bisect 操作使用git submodule update命令
如果1: 想要保留在detached HEAD状态下的开发内容那就新建一个分支。
git checkout -b new_branch如果2: 只是在detached HEAD状态下验证某些东西不想保存相关操作直接切换回某个一分支即可。
git checkout branchname6.删除分支
git branch -d branchname2默认规则1不能删除当前分支。 默认规则2: 不会允许删除一个 包含不存在当前分支提交的分支。就是说要删除的分支不是当前分支的祖先那么删除该分支将会造成某些开发不可留。但是可以通过 -D强制删除可以选择在删除之前进行一次合入操纵。
git branch -D branchname2