1.列出当前远端库的分支情况:

git branch

2.新建并切换当该分支:

git checkout -b develop相当于:git branch developgit checkout develop

3.在当前分支下进行修改项目:

git add .git commit -m 'update'可有:
git diff develop master

4.提交变更(分支)

git pull origin developgit push -u origin develop

5.切换master分支

git checkout master

6.再将master分支的代码提交到远程,提交之前先更新

git pull origin mastergit merge develop   // git merge命令用于合并指定分支到当前分支

7.合并完成后,进行提交

git push origin master

合并之后,删除分支

git branch -d develop

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

git

1. Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

2. 什么是版本控制系统?及命令

  • git status: 要随时掌握工作区的状态

  • git diff: 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

  • git log: 可以查看提交历史,以便确定要回退到哪个版本

  • 版本回退
    git reset --hard HEAD^
  • git reflog: 在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

  • 指定回到未来的某个版本

    git reset --hard 1094a

    3.工作区和暂存区

  • 工作区: 在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区。

  • 版本库: 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。                   (1)Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

    前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

    第一步:用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

    • $ git checkout -- readme.txt

      命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

      已经添加到暂存区:庆幸的是,在commit之前,你发现了这个问题。用git status查看一下,修改只是添加到了暂存区,还没有提交:

      $ git status
      On branch master
      Changes to be committed:(use "git reset HEAD <file>..." to unstage)modified:   readme.txt
    • git reset HEAD <file>

      用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:

      $ git reset HEAD readme.txt
      Unstaged changes after reset:
      M   readme.txt

      git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。                                                                                                      再用git status查看一下,现在暂存区是干净的,工作区有修改:

      $ git status
      On branch master
      Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified:   readme.txt

      还记得如何丢弃工作区的修改吗?

      $ git checkout -- readme.txt$ git status
      On branch master
      nothing to commit, working tree clean

      现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得版本回退一节吗?可以回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把stupid boss提交推送到远程版本库,你就真的惨了……

      撤销修改 小结

    • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

      场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

      场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。

现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。

多人协作

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

git rebase

这就是rebase操作的特点:把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。

git创建分支develop,并合并到master相关推荐

  1. git创建分支,合并分支,常用命令

    本文非原创, 来源于:点击这里 这篇文章写得非常全面,而且通俗易懂,本文详细的介绍了:git如何创建分支,如何合并分支,如何管理分支,如何解决冲突. Git 分支 几乎每一种版本控制系统都以某种形式支 ...

  2. Git创建分支并合并到主分支

    Git创建分支并合并到主分支 1.创建分支 2.切换分支 3.合并分支代码 4.将master主分支push到远程仓库 5.将login分支push到远程仓库 1.创建分支 使用如下命令创建一个名称为 ...

  3. Git创建分支以及合并分支

    Git创建分支以及合并分支 首先我们准备了一个项目 最初内容: 查看当前所在分支: git branch 说明我们只有一个分支,现在我们新建一个分支: git branch dev git branc ...

  4. git创建分支及合并

    git创建分支及合并 1.在远端创建自己的分支 2.在本地创建自己的分支,并切换到自己的分支 git branch newbranch git checkout newbranch 3.将远端和本地分 ...

  5. git创建、切换、合并、删除分支

    创建分支 git branch 分支名 git log --decorate --oneline显示 切换分支 git checkout 分支名 合并分支 git merge 分支名 关于合并冲突问题 ...

  6. git 将dev分支的代码合并到master并添加对应的Tag

    1.参考文章如下: (1).https://www.cnblogs.com/zhangshijiezsj/p/14174896.html (2).https://blog.csdn.net/b7350 ...

  7. 远程服务器如何创建分支,Git 创建分支提交远程分支详解

    搜索热词 Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随 ...

  8. git branch分支切换和合并

    创建与合并分支 https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424 在版本回退里,你已经知道,每次提交,Git都把它们串成 ...

  9. SVN管理工具Cornerstone之:创建分支、提交合并

    创建工程的分支: 步骤: 1.选择左下角仓库repositories中的工程名->选择trunk->点击Branch->在提示框里填写分支名称create, 2.在做上角workin ...

  10. git 创建分支并合并到master 上

    1 创建一个dev的分支 git branch dev 2 切换到dev 分支上 git checkout dev (创建并切换是git checkout -b 分支名) -------------- ...

最新文章

  1. java8新特性(四)_Stream详解
  2. linux中export和source的作用和区别
  3. 高并发场景下 disk io 引发的高时延问题
  4. java矩形翻转_如何判断一个点在旋转后的矩形中
  5. QML与C++混合编程详解
  6. 一篇文章讲清python开发必懂的8种数据结构
  7. WAP 1.X, WAP 2.0
  8. 基于SRP创建自定义渲染管线
  9. 卸载Windows的引导界面中的变色龙选项
  10. Kafka 集群搭建
  11. python乌龟吃鱼_关于乌龟吃鱼游戏的问题
  12. WARNING: We noticed you're using the `useBuiltIns` option without declaring a core-js version.
  13. win10系统的怎么搭建web服务器,win10系统利用iis搭建web服务器的操作方法
  14. html文件 加壳,CDHtmlDialog加壳HTML5页面跳转错误解决(原)
  15. 使用快解析一招解决电脑dns异常问题
  16. xgboost early_stop_rounds是如何生效的?
  17. R语言入门——猜数游戏
  18. python扫描二维码输出内容_通过python扫描二维码/条形码并打印数据
  19. 【C基础】11 指针与数组
  20. 蓝奏云直链解析API接口

热门文章

  1. 配置babel-plugin-import报错的深坑
  2. mui实现二维码扫描功能
  3. php数组倒插,phpComasy v0.7.9
  4. 论文阅读:Permutation Matters: Anisotropic Convolutional Layer for Learning on Point Clouds
  5. 计算机电脑整蛊图片,双击就蓝屏 男子愚人节整蛊怒砸笔记本
  6. 微信定时发消息Python代码,简单好玩
  7. mysql reconnect_在设置了MYSQL_OPT_RECONNECT之后,mysql_ping是否还有必要?
  8. [0CTF 2016] piapiapia 题解
  9. 网络爬虫-爱给音效素材网js逆向思路
  10. 三十分钟理解:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB