美文网首页
5.git添加远程仓库,再克隆到本地,然后做分支管理

5.git添加远程仓库,再克隆到本地,然后做分支管理

作者: Sune小叶子 | 来源:发表于2018-03-05 15:38 被阅读0次

    1.当你已经建立了本地的Git仓库以后,又在GitHub上建立了一个Git仓库,并且让这两个仓库远程同步

    关联一个远程库,使用命令:

    ``` 

    git remote add origin git @server-name:path/repo-name.git;

    ```

    关联以后,第一次将内容推送到master分支上,使用命令:

    ``` 

    git push -u origin master

    ```

    ####  2.从远程库克隆

    注:之前都是讲的先建立本地的库,再关联远程库;但是如果重新开始一个项目,最好是先创建远程库,再克隆到本地

    现在假设我们已经建立了远程库,那我们按开发流程,进行如下操作:

    ##### 1.git clone克隆一个本地库

    ``` 

    git clone git@...你的远程仓库项目地址

    ```

    那么多人协同开发,就可以每个人克隆一份到本地了,git支持多种协议,包扣https和ssh,但是ssh支持的原生git协议速度最快.

    #### 3.从远程库克隆下来以后,进入到本地的文件夹下面,如果你什么也没有做,然后你想查看当前的分支,你执行git branch,会提示你不是Git存储库:

    那么你要执行git init建立本地的代码库,然后就可以看见有master分支了,

    当只有master分支时,master分支是一条线,git用master指向最新提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.

    当创建新的分支,如dev时,git新建一个指针dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上


    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name>

    删除分支:git branch -d <name>


    用带参数的git log 可以查看当前分支的合并情况

    git log --graph --pretty=oneline --abbrev-commit

    查看分支合并图

    git log --graph


    分支管理策略

    master分支应该是非常稳定的,用来发布新版本,平时都在dev分支上干活

    dev分支是不稳定的,到版本发布的时候就把dev合并到master上面,在master上面发布新版本,

    然后每个人都有自己的分支,平常测试什么的只需要将自己分支上的东西合并到dev分支上面就可以了


    bug分支

    如果你正在dev分支上面进行某项工作,但是现在发现一个紧急bug,要先修复bug,怎么办?

    git可以使用stash功能将当前工作现场储藏起来,等以后恢复现场后继续工作

    ``` 

    git stash

    git status

    ```

    如果现实工作区是干净的,就可以放心去创建分支修改bug了,比如要在master上面修复bug

    ```

    git checkout master

    git checkout -b bug-01

    //然后修复bug,修复完以后再提交,然后切换到master分支,并删除bug分支bug-01

    git add .

    git commit -m "update"

    git checkout master

    git branch -d bug-01

    ```

    现在我们再切换回dev分支上继续干活

    ```

    git checkout dev

    git status

    //回看见说分支是干净的,那么我的之前的工作现场去哪了,我们可以用git stash list来查看

    git stash list

    //那么我要怎么恢复现场,有两种方式

    //1.git stash apply 但是恢复以后stash内容并不会被删除,需要使用git stash drop来删除

    //2.git stash pop恢复的同时把stash内容也删除了,再查看git stash list

    //3.git stash apply stash@{0}

    ```


    feature分支

    在开发中总是会有新功能添加进来,但是不想让实验性的代码把主分支弄乱了,所以新添功能的时候最好新建一个分支,同bug分支一样,修改以后再合并,然后删除.

    但是如果现在feature分支还没有被合并,就被要求就地销毁,功能取消,怎么办?

    强行删除:

    git branch -D <name>

    在本地创建分支以后,关联到远程就相当于在远程创建一个同样的分支

    ```

    git checkout develop

    git branch

    git checkout -b feature_xy

    git add .

    git commit -m "..."

    git push origin feature_xy:feature_xy    //将本地新建分支关联到远程库

    git branch -a    //查看远程库分支

    git push origin --delete feature_xy      //删除远程分支feature_xy

    git branch

    git checkout develop

    git branch -d feature_xy     //删除本地分支

    ```


    多人协作

    当你从远程仓库克隆的 时候,其实git已经自动将本地的master分支和远程的master分支对应起来了,并且远程仓库默认名称是origin,要查看远程仓库信息:git remote 

    查看远程仓库:

    git remote

    git remote -v

    推送分支,将本地分支上的所有代码提交到远程库

    git push origin master

    但是并不是一定要把本地分支往远程推送,master分支是主分支,因此要时刻与远程同步;dev分支是开发分支,大家都在上面工作,所有也要与远程同步,但是bug分支修复了就删掉好了,feature分支看你们项目需要


    远程clone下来的只有master分支,但是要在dev分支上面开发,就需要创建远程origin的dev分支到本地:

    git checkout -b dev origin/dev

    如果只是在本地创建了dev分支并没有与远程的origin/dev分支链接提示"no tracking information",那么怎么链接呢?

    git branch --set-upstream dev origin/dev

    然后在pull的时候就可以pull下来了

    相关文章

      网友评论

          本文标题:5.git添加远程仓库,再克隆到本地,然后做分支管理

          本文链接:https://www.haomeiwen.com/subject/ojdhfftx.html