一.基础使用

1.初始化本地仓库

git init

2.关联远程仓库

git remote add origin git@github.com:用户名/仓库名.git 

3.添加远程仓库文件到本地

git pull origin master
  • 本地自动创建master分支用于跟踪远程origin/master分支

4.创建本地分支


$ git checkout -b 新的分支名
Switched to a new branch "新分支名"
  • 和以下效果等价

$ git branch 新分支名 (新建分支)
$ git checkout 新分支名 (跳转到新分支)
  • 新建分支以创建新分支时所在的分支为源,比如在master中创建仓库,新分支的初始内容和创建时master相同,这点可用于版本管理。

注意:在分支间跳转本地文件会切换到分支的文件状态,当提交修改提交到master,切换到其他分支,合并分支,git merge master,分支合并不止分支合到主分支,也可主合到分支。所以不论你在本地将修改提交到那个分支,可通过合并分支实现本地分支保持一致,将修改添加到其他分支。

5.将本地分支push到远程仓库

$ git push origin 分支名
  • 远程新增分支,和本地push上去的分支关联

6.修改本地文件,并提交


$ git add 文件名
$ git commit -m 备注
$ git push origin 分支名

7.删除远程分支

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

栗子:如果想在服务器上删除serverfix 分支,运行下面的命令:


$ git push origin :serverfix
To git@github.com:schacon/simplegit.git - [deleted] serverfix

8.文件重命名修改提交

  • 修改后直接用git commit -m 备注
  • 然后 git push origin 分支名

注意:多个文件修改,可先将文件git add ,将文件都加进去,最后一次git commit ,git push origin --

9.查看状态(是否有未跟踪文件,是否有已修改未提交文件等状态改变),push前可查看

$ git status

10.查看提交记录

$ git log

11.回退

$ git reset 

小结:

注意:要关联本地和远程仓库,才可pull和push


二.版本管理(与创建分支结合)

1.master主要为发布版本,如果要进行修改则以master为源新建分支,并将分支push到远程,分支可命名为deveop1.0,或按照版本命名versin1.0,ersin2.1等。

如果是添加功能可用feature,修补bug可用fix_bug;

2.在分支中提交修改,确定合并分支到master


$ git checkout master (回到主分支)
$ git merge 分支名 (合并分支。本地合并)
$ git push origin master(将主分支修改push到远程,远程合并)


三.版本回退

1.当已经提交修改,但是想回到修改前的样子时,可使用版本回退



$ git reset --hard HEAD^ (查找版本号)

HEAD is now at f8dce4b 完成成就界面设计及编码,根据数据内容显示功能实现//“f8dce4b是版本号,后面紧跟着的是commit注释”

$ git reset --hard HEAD^

HEAD is now at 1bc0043 Merge branch 'master' of put-me-down

2.找到想要的那个版本的版本号后进行回退



$ git reset --hard f8dce4b(版本号)u

HEAD is now at f8dce4b 完成成就界面设计及编码,根据数据内容显示功能实现


四.merge时出现冲突

1.合并分支语句

$ git merge 分支名

2.在写合并分支语句之前把要合并的分支的内容pull下来,如将主分支pull下来

$ git pull origin master
  • pull 会出现冲突,pull下来的版本比本地版本更新,可以用git status 看存在哪些冲突,打开文件进行修改,如果要保存原来版本,可在修改前用下列语句存储代码:

    (点击这里)

  • 和分支进行合并的时候(git merge 分支名),会出现冲突,同样用git status进行查看冲突,或者运行代码看报错情况,对冲突进行修改。修改后要用git status 查看情况:

  • 看提示,要将修改的代码add,add后不能git commit -m "...",git push origin 分支名,这样会报错,提示存在未合并的文件,不可提交,按照git status 的提示,将需要add的文件都add ,

  • 然后用git commit 提交,会进入vim 编辑器,写提交备注,

  • 将冲突都解决,并提交后,程序试运行,看是否能跑,能跑再push


五.vim编辑器的简单使用

1.可用下列语句恢复


shift + c 键-- 进入编辑状态
esc键 --退出编辑状态
退出编辑状态后后“:+wq”退出编辑器

六.保存文件

1.保存

$ git stash save "...."

2.可用下列语句恢复

$ git stash apply 

git分支与版本管理、版本回退、冲突解决记录的更多相关文章

  1. git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...

    git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...

  2. 【git】远程仓库版本回退方法

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  3. Git 分支(分布式版本控制系统)

    前言 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线.在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创建一个源代码目录的 ...

  4. git分支管理的策略和冲突问题

    目录 备注: 知识点 关于分支中的冲突 分支管理的策略 分支策略 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文. 知识点 git log ...

  5. Git时光机穿梭之版本回退

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...

  6. Git强制更新本地库和冲突解决

    1.You have not concluded your merge. (MERGE_HEAD exists) 本地有修改和提交,如何强制用远程的库更新.出现这种情况一般是git本地有commit, ...

  7. 【Git】三、版本回退&撤消修改&文件删除

    提要 //查看git操作日志 $ git log //单行格式查看操作日志 $ git log --pretty=oneline //还原操作到上一次版本,有几个^就上几次 $ git reset - ...

  8. 『现学现忘』Git后悔药 — 27、版本回退介绍

    目录 1.什么版本回退 2.需要了解两个知识点 (1)HEAD是什么 (2)HEAD指针用法 3.git reflog命令介绍 1.什么版本回退 版本回退也可以叫回滚. 若修改过的文件,不仅添加到了暂 ...

  9. 『现学现忘』Git后悔药 — 28、版本回退git reset --soft命令说明

    git reset --soft commit-id命令:回退到指定版本.(soft:柔软的) 该命令仅仅修改分支中的HEAD指针的位置,不会改变工作区与暂存区中的文件的版本. 实现上是只做了一件事情 ...

随机推荐

  1. js模拟手机触摸屏

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 未能加载文件或程序集“Enyim.Caching”或它的某一个依赖项。未能验证强名称签名

    from:http://www.mzwu.com/article.asp?id=3741 itHub下载Enyim项目,编译后引用程序运行出错: 引用内容 未能加载文件或程序集“Enyim.Cachi ...

  3. Spring Batch实践

    Spring Batch在大型企业中的最佳实践 在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后 ...

  4. 诺顿ghost备份恢复系统或分区

    一 诺顿ghost简介 1,可以克隆分区 也可以克隆磁盘 2,克隆成img或磁盘内容对刻 3,磁盘分区--img---磁盘分区 磁盘---磁盘   二 操作步骤 对刻好的系统 整体思路: 1,A是模板 ...

  5. C语言 复杂队列(链表队列)

    //复杂的队列二 --链表队列 #include<stdio.h> #include<stdlib.h> #define datatype int struct queueli ...

  6. 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法

    今天遇到了这个问题, 电脑系统:vs2010 win7系统 iis7 我运行在iis中配置的那个网站后,报错:错误代码 0x800700b7 配置错误定义了重复的“system.web.extensi ...

  7. Android -- 使用inBitmap要注意的地方

    SDK版本 需要注意的是inBitmap只能在3.0以后使用.2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上. 在android3.0开始,系统在Bitma ...

  8. [CareerCup] 11.5 Search Array with Empty Strings 搜索含有空字符串的数组

    11.5 Given a sorted array of strings which is interspersed with empty strings, write a method to fin ...

  9. 20145215《Java程序设计》第1周学习总结

    20145215<Java程序设计>第一周学习总结 教材学习内容总结 本周先学习了最基本的java环境的搭建. 首先从官网上下载了jdk(jdk与jre的区别在于如果只需要运行一个开发好的 ...

  10. Java学习笔记(十五)——javadoc学习笔记和可能的注意细节

    [前面的话] 这次开发项目使用jenkins做持续集成,PMD检查代码,Junit做单元测试,还会自动发邮件通知编译情况,会将javadoc生成的文档自动发到一个专门的服务器上面,每个人都可以看,所以 ...