[git] 基础操作-02 分支和主支合并

it2025-05-31  26

前言:

git   创建分支和合并分支的细节,和可能遇的任何问题 


 1 判断在分支的方法

1.1 

 用git status,查阅可见如下:

右侧蓝色部分为分支名字

git branch


2 构建新的分支

$ git branch BranchName

 分支 上git log现在只能显示分支上的版本了

解决办法,看后面5,问题解答


3从主支切换到分支的方法

git checkout BranchName


4 从分支切换到主支的方法

  首先,用git status 判断 是否是比较清爽的状态

所谓【案】 清爽的状态,就是所谓清爽的clean状态,就是 当前工作目录下,是否所有的文档都已经被跟踪了,或者,已经决定不跟踪了,如果,还有新建的文件,或者改动的文件,那么,版本的切换都是不安全的。

$ git status On branch TenJunReq nothing to commit, working tree clean

只要是clean了,那么这时候版本切换是100的不会报错的。

$ git checkout master Updating files: 100% (766/766), done. Switched to branch 'master'

否则,就有可能中途报错退出。

【案】见处理3节错误 


2.1 分支并入主支,也就是merge的方法

$ git merge TenJunReq Updating files: 100% (766/766), done. Updating 55c7718..affb139

这样 原来的branch的表述:

变成了:

在git gui上,我们看到HEAD(黄色)的即是master又是一个分支节点

 

  同样,在git command上也一样

 

2.2 主支并入分支,也就是rebase的方法


5 遇到的问题:

5.1 checkout 回到master 报错:

$ git checkout master error: Your local changes to the following files would be overwritten by checkout: error: The following untracked working tree files would be overwritten by checkout: Aborting

 这两个问题,

1 项目文件本地修改会被覆盖

​​​​​​这个又分两种情况

1.1 一个本地修改已经到暂存区(staged) 里面了

这个通过将本地版本文件用commit的办法checkIn可以解决,就是文件以及本地修改,并在暂存区了,但是还没有提交到仓库。

1.2 连暂存也没提交

​​那就是要不你就 add,commit提交,

要不就干脆不要了吧,也许也是胡乱写的思路,git restore放弃工作目录的修改​​​ 

$ git status HEAD detached at affb139 Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory)

2 项目文件有一些还没有进入版本管理

 这个你这时候要判断,你的这些文件是否都是重要的 需加入, 还是可以放弃?放弃

2.1 可以放弃的话,用git clean来处理

$ git clean -n Would remove fringe_pattern_tx3_mode0/db/fringe_pattern.(202).cnf.cdb

 先用git clean -n,来确认一下些会被 放弃管理。

$ git clean -f Removing fringe_pattern_tx3_mode0/db/fringe_pattern.(202).cnf.cdb

然后,用git clean -f 来移除这些不需要管理的文件

 

2.2  不放弃,那就要走add 的流程

add -> commit

$ git add .

以上 添加所有没有 添加到暂存的文件和修改

添加后,颜色会变绿,这时候,如果反悔,提示了,用git restore

上述步骤后,再查看,如果如下显示,clean了那么就没问题

$ git status nothing to commit, working tree clean

 5.2 checkout 分支后,只能看到分支的记录,主支看不到了

只需要:加 -g的参数

$ git log -g

 

 


小结:


参考:

1 git的分支与合并的两种方法

https://blog.csdn.net/m0_38022029/article/details/79054619

 

2 解决checkout报错的方法

https://blog.csdn.net/qq_32452623/article/details/75645578

 

3 git clean 和 git reset的用法

https://www.jianshu.com/p/0b05ef199749

 

最新回复(0)