git分支管理

git 分支相关常用命令

基本命令

// 查看本地分支
git branch
// 查看远程分支
git branch -r
// 查看分支详细信息
git branch -vv
// 同步远程仓库
git fetch
// 创建分支dev
git branch dev
// 切换到分支dev
git checkout dev
// 删除分支dev
git branch -d dev
// 创建并切换到分支dev
git checkout -b dev
// 合并分支
git merge dev

远程分支

创建远程分支

git push (远程仓库名) (分支名)

或者

git push (远程仓库名) (本地分支名:运程分支名)
// 创建远程分支dev  
git push origin dev
// 或             
git push origin dev:dev

意思为取出本地的dev分支,推送到远程的仓库中的dev分支去。

跟踪远程分支

从远程分支 checkout 出来的本地分支,称为 跟踪分支 (tracking branch)。跟踪分支是一种和某个远程分支有直接联系的本地分支。在跟踪分支里输入 git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。同样,在这些分支里运行 git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。

git checkout -b [分支名] [远程名]/[分支名]
git checkout --track origin/dev
// 从远程分支dev创建本地分支feature
git checkout -b feature origin/dev

在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是 git push 和 git pull 一开始就能正常工作的原因。

// 将本地分支feature的远程分支设为orgin/dev
git branch --set-upstream-to=origin/dev

删除远程分支

语法:git push [远程名] :[分支名]

// 删除远程分支dev
git push origin :dev

更新

从仓库更新更新跟踪的远程分支

git pull
git pull origin

从远程分支master合并到当前分支

git pull origin master

相当于

git fetch origin
git merge origin/next

与Github同步

将本地的一个目录下的文件与Github上一个仓库相关联。

// 初始化本地
git init
// 增加远程仓库地址
git remote add origin git@github.com:Zhao-Hui-Huang/GitLearn.git
// 从远程仓库同步
git fetch
// 检出
git checkout --track origin/master

git add .
git commit -m'add test file'
git push

Git 比较命令

// 比较工作区与暂存区的文件
git diff
// 比较暂存区与最后一次commit的文件
git diff --cached
// 比较工作区与最后一次commit的文件
git diff HEAD

Git rebase(高端操作)

我们在工作中很常见代码冲突

场景实例 假如我们master迁出(dev1)分支 进行工作 别人也在master(dev2)迁出进行工作

每个人都会提交多个commit 这样分支会很不好看。

当一个人开发完毕后 他会合并分支到master上 那我们分支的代码就不是最新的了如果俩个人修改了同一份文件 这样就会使我们产生冲突 那我们如何优雅的去解决合并 并且使我们的分支变的好看呢。

请看实例

首先创建分支

// 创建分支
git branch dev
// 切换分支
git checkout dev

或者

// 创建并切换到分支dev
git checkout -b dev

现在我们有俩个分支了
切换回主分支

git checkout -b master

创建文件

touch master.txt
touch dev.txt

修改master分支文件

vim master.txt
然后i进行插入
esc
输入
:wq
保存

然后再master主分支进行素质三连

git add .
git commit "master1"
git push origin master

然后切换到我们dev分支
修改dev文件 操作同上
这时候没有冲突 可以直接合并

// 注意 是在dev分支进行此操作
git merge master

切回到主分支master进行修改 接着修改dev文件 然后素质三连
切换到dev分支 修改dev文件 然后提交
接着合并master 注意细节

// 我们应当这样进行合并
git rebase master
git merge master
// 这时我们执行
git status 
// git status命令会提示你当前应该怎么做
// 然后我们根据提示执行合并并解决冲突
git rebase --continue

// 然后执行
git add <冲突的文件名>
// 继续
git rebase --continue
:wq 保存

// 然后打开我们冲突的文件 
vim <冲突的文件名>
// 把多余的进行删除 然后add commit
git add .
git commit -m "dev2"

// 接着我们执行
git rebase -i HEAD~<commit几次就数字几>
// 列子
git rebase -i HEAD~2
// i 进行修改 除了第一个之外进行 pick改为f(其它命令自行百度)
:wq 进行保存
// 然后进行强制提交
git push origin dev -f
// 大功告成

这时我们的冲突解决了 而且保持了最新的代码master

而且我们的分支 commit提交也很简介 只有我们保留的那一个

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时...
    July_lt阅读 219评论 0 2
  • 一.创建与合并分支: 1.分支概念: 每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。我们经常用的...
    Mr_欢先生阅读 561评论 0 11
  • 分支操作 Git的分支,其实质是仅仅指向提交对象的可变指针,所以创建 删除分支开销非常小。HEAD指针表示当前指向...
    ccczyl2006阅读 129评论 0 0
  • 更多整理资料尽在👉一平米小站 Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从...
    leiyulingling阅读 5,412评论 0 3
  • 分支管理 分支管理有什么用呢? 便于协同工作时的版本管理 便于多任务同步互不干扰的版本管理 创建与合并分支 创建分...
    程序淡然阅读 343评论 0 1