git学习 分支管理(branching)合并分支
git branch 查看本地所有分支
PS F:\LiveTalking> git branch
* main
git branch -a 查看所有分支 包括本地和远程分支
PS F:\LiveTalking> git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/ernerf-rtmp
remotes/origin/main
远程分支:是本地仓库里的一个书签或指针 。这个指针的唯一作用是记录上一次你和远程仓库通信时,远程分支(比如origin/main)所处的位置 命名规则就是<remote-name>/<branch_name> 最常见的远程名字是origin
例如:origin/main
:指向远程仓库(origin)上 main
分支的“指针”。
唯一的更新方式是git fetch 和git pull
为什么会说唯一的更新方式是git fetch 和 git pull吗?这两个是获得远程分支的更新情况的 我看deepseek说了一个例子 git branch -a说的意思是根据我们最后一次和总部同步消息 总部有以下这些分支 此时并没有主动去咨询总部 在没有同步消息的这段时间内 是否有更新 而git fetch 就是去咨询总部 请求最新的情况
git branch <branch name>在本地新建一个分支
PS F:\LiveTalking> git branch liujiangli-branch
PS F:\LiveTalking> git branch
liujiangli-branch
* main
团队协作的时候很重要 每个人都在Main分支上 是很危险的 注意在创建新的分支之前 确定main是最新的 这样的话你同事的对于main的修改 不会导致后期你的代码差异过大
git branch -d <branch-name> 删除一个本地分支 (安全删除 会检查是否已经合并)
PS F:\LiveTalking> git branch -d liujiangli-branch
Deleted branch liujiangli-branch (was b750ae9).
PS F:\LiveTalking> git branch
* main
(我在我的本地爱怎么修改就怎么修改 但是我会将我觉得好的修改必要的Git add 然后再git commit只有经过commit的部分 才会到远程仓库 不然的话就还是在我的本地)
上面那个删除指令 因为我这分支啥操作也没做 我们来试试做操作之后是啥情况
PS F:\LiveTalking> git checkout liujiangli-branch
A 1.py
M app.py
M baseasr.py
M basereal.py
M lipasr.py
M lipreal.py
M llm.py
A llm1.py
A ttsreal1.py
M wav2lip/genavatar.py
M wav2lip/models/wav2lip.py
M webrtc.py
Already on 'liujiangli-branch'
我新建了一个liujiangli-branch分支 然后使用checkout切换到这个分支上 可以看到这个分支上存在的内容 这些是没有git add 和commit的 简单看看就行
git branch -d <branch-name> 删除一个本地分支 (安全删除,会检查是否已合并)删除这个分支不能在此分支上 要切换到其他分支 而且切换的时候如果在这个新分支上进行的修改没commit 不会让你切换 这些自己都实验一下就行
git branch -D <branch-name> 强制删除一个本地分支 即使没有被合并(合并到目标分支)
git checkout <branch-name> 切换到分支
git checkout -b <branch-name> 创建并切换到分支
git switch <branch-name> 切换到分支
git switch -c<branch-name>创建并切换到分支
git merge是针对于分支的合并
git merge <branch-name>指定分支合并到当前分支
写着写着不想写了 差不多了 之后工作的肯定才会应用更多 先这样
喜欢这个帖子 欢迎点赞