全视图了解:看完下面内容,再回头看,会有不一样的风景!

1、明白git的四个区

  • Workspace(工作区):平时我们写代码的地方。
  • Index(暂存区):写完代码后让它变成的待提交的状态。
  • Repository(本地仓库):提交暂存区的代码到这里,记录进入代码本地管理。
  • Remote(远程仓库):将本地仓库的修改的代码提交到远程,可以供远程协作的人下载。

下图(网上扣出来的很错),可以清晰的表示各区间的联系:

2、 代码提交

  远程代码clone到本地之前的事都不说(什么安装git ,怎么clone),文件到本地后,进行修改后,以下几个步骤可以提交到远程库。如下

      git add .   将工作区修改过的代码全部提交到 暂存区
      git commit -m "first commit"   将暂存区的代码提交到 本地仓库
      git remote add origin    远程仓库地址
      git push -u origin master 将 本地的仓库 的代码提交到 远程仓库

      后面两个命令:前者适用于代码存在于远程仓库(Remote)的情况。后者适用于本地仓库(Repository)初次上传到远程仓库的情况。

  上面注要是讲直接 披着提交到 远程仓库里面(也就是远程仓库origin/master主分支上)

  以上命令细解:

   ·1、修改代码后,将代码提交到暂存区(Index)
    git add . :添加当前目录所有的文件都进入暂存区(记得后面有一个点,不写点,可以用‘-A’代替)。
    git add <dir>:添加指定目录所有的文件(目录路径)都进入暂存区。
    git add <file1>:添加指定文件(文件路径 )进入暂存区。

    2、提交到暂存区后,怎么看你修改过那些文件?

      git status  可查看所有被修改过的文件,还可以查出有冲突的文件,已提交到本地仓库的不会展示。

   3、怎么查看修改了那些文件的具体修改了什么?

      git diff  查看所以修改过的文件修改的内容

      git diff  <file>  查看这个文件修改的内容  。<file>指 要查看的文件的路径

  4、将暂存区文件提交到本地仓库

      git commit -m <message>:将暂存区的文件上传到本地仓库,<message>的位置填写本次提交修改的内容和一些注释。

  5、将本地仓库提交到远程仓库

    git push <remote><branch>:将本地仓库新记录提交到远程仓库,<remote>位置填写远程仓库名称(没有改的话,默认为"origin"),<branch>填写远程仓库需要提交的分支。

  总结: 一般的话提的代码不会直接提交到远程库的master主分支上,都会在本地建一个分支 提交到 远程分支上,再合入到主分支上(master),所以 步骤一般是这样的:

      git  clone 远程地址;

      cd  项目目录     这里就应该可以看到是在master主分支上;  

      git  checkout -b  <name> 建一个分支并切换到该分支上,<name>分支名

      git  add -A 或 git add .      修改代码后,将修改的内容提交到 暂存区

      git commit -m"写你修改内容相关的说明文"     将暂存区的内容提交到本地库

      git push origin <name>   将本地库的内容提交到远程库里  <name>是该分支名

   ·    走完了以上几步,大家基本上就学会提交代码了。

      当然有的人可以还会问,在一个分支个提交了代码到远程分支上,我再修改了内容怎么做了?

       很简单: 重复后三个步骤就行了,会全部提交到同一远程分支上,这个和你一次提交所有代码和把所有代码分几次提交是一个样的。
    
  

3、多人协作做一个项目。

   1、拉远程库到本地库中(如你本来克隆了一个库在本地,在这之后远程库中有人合入了代码进去,你可以pull远程代码到本地,使你的本地代码和远程的代码一样,当然这时要切换上master主支上)

    git pull <remote><branch>:从远程仓库拉取代码到本地仓库,<remote>位置填写远程仓库名称,<branch>填写拉取远程仓库的分支。

    git pull  将所以远程分支拉入本地仓库

    说明: 这个用到pull是因为要用到远程相关的代码,不要在已经修改的分支上pull,要切换上master分支上再pull,你要做新的改动,可以再建一个分支,不要在以前的分支上再做了,因为那上面没有pull 的代码

  

    

  2、分支的功能:从同一份稳定代码拉出有相同代码的分支,每个人在自己的分支上开发提交代码,不会互相打扰,完成后再进行代码的合并。  

      git branch:列出所有本地分支
      git branch -r:列出所有远程分支
      git branch -a:列出所有本地分支和远程分支

      git branch <branch-name>:新建一个分支,但依然停留在当前分支,<branch-name>为新建的分支名
      git checkout -b <branch-name>:新建一个分支,并切换到该分支,<branch-name>为新建的分支名
      git checkout <branch-name>:切换到指定分支,并更新工作区,<branch-name>为指定的分支名
      git branch -d <branch-name>:删除分支,<branch-name>为指定的分支名
      git push origin --delete <branch-name>:删除远程分支,<branch-name>为指定的分支名
      git push origin <branch-name>:将当前分支上传到远程仓库,<branch-name>为新建的远程分支名
 
    分支命令很多  基本常用的就2,3个 ,git checkout -b <branch-name> 这是最常用的   还一个查看分支 git branch 
 
   3、合并分支
      git merge <branch-name>:合并指定分支到当前分支,<branch-name>是指定分支,将该分支代码合并到当前分支。
 
      这个一般不会用,常用了查看冲突上,
      如发现和master分支有冲突,怎么解决冲突?
      现在本分支上切换到 master 分支, git pull 一下,现切换上刚修改的分支上,git merge master  合并完成后,分支会变成 xxxx|MERGING(”xxxx“指分支名) 状态,再用 git status 查看一下是那个文件冲  突。再找到相应文件,修改冲突的地方,再提交一次(进行代码提交换的后三步骤),xxxx|MERGING 状态就会变以分支名了(恢复到正常状态)。
 
最后附一张 常用的Git命令表非常实用
 

git 的日常使用命令的更多相关文章

  1. 从零开始使用git第二篇:git的日常操作

    从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...

  2. 关于git你日常工作中会用到的一些东西

    前言 git是一个版本控制工具, 版本控制主要的好处有三点: 从当前版本回退到任意版本 查看历史版本 对比两个版本差异 git 相关术语 repository 仓库 branch 分支 summary ...

  3. 2.goldengate日常维护命令(转载)

    goldengate日常维护命令 发表于 2013 年 7 月 4 日 由 Asysdba 1.查看进程状态 GGSCI (PONY) 2> info all 2.查看进程详细状态,有助于排错 ...

  4. svn服务配置和日常维护命令

    Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3  AS 4   ContOS AS 4 安装包获取: 下载[url]ht ...

  5. 程序员必备:Oracle日常维护命令

        上一篇讲了Linux的日常维护命令,这篇讲讲Oracle的日常维护命令.工作中需要使用Oracle数据库的童鞋们,相信或多或少都需要对Oracle做一些基本的维护操作,例如导入导出总该有吧?( ...

  6. git plumbing 更加底层命令解析-深入理解GIT

    原文: http://rypress.com/tutorials/git/plumbing 本文详细介绍GIT Plumbing--更加底层的git命令,你将会对git在内部是如何管理和呈现一个项目r ...

  7. mha日常维护命令

    mha日常维护命令 http://m.blog.chinaunix.net/uid-28437434-id-3959021.html?/13033.shtml 1.查看ssh登陆是否成功masterh ...

  8. Git中的merge命令实现中出现问题及其解决

    Git中的merge命令实现和工作方式 2015年8月17日星期一 丹丹 git代码在合并两个分支的时候总是会出现一下的错误提示,不能正常的完成合并分支,错误提示如图所示: 但是在其他的终端是可以完成 ...

  9. github总结(4)--关于git reset --hard这个命令的惨痛教训

    背景叙述: 前几天,上传自己的个站到git上的时候,手欠脑发晕的用了次git reset --hard xxxxxx 命令.由于只在线上传入了一个index.html页面(自己都不知道自己咋想的,就这 ...

随机推荐

  1. 010-Hadoop Hive sql语法详解5-HiveQL与SQL区别

    1.Hive不支持等值连接 •SQL中对两表内联可以写成:•select * from dual a,dual b where a.key = b.key;•Hive中应为•select * from ...

  2. html5游戏开发-零基础开发《圣诞老人送礼物》小游戏

    开言: 以前lufy前辈写过叫“ HTML5游戏开发-零基础开发RPG游戏”的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为 ...

  3. notepade++使用

    Notepad++也可以实现双视图/双窗口对比显示,目前最新版本(6.32)只能支持双视图显示,而且只能支持左右视图,希望后续版本能得到改进. 我们打开两个需要对比显示的源文件 默认的情况下是分成了两 ...

  4. Linux的日志管理

    Linux日志的管理 日志:记录了你几乎所有的操作记录,用于系统的审核,故障的排除.日志文件永久存放在日志目录中,系统日志保存在/var/log中 rsyslog 按照日志类型分类,把所有日志记录到/ ...

  5. C#中获取时间差

    /// <summary> /// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. /// </summary> /// <param name=&q ...

  6. H5端js实现图片放大滑动查看-插件photoswipe的使用

    最近在开发项目的时候,遇到一个需求,需要移动端实现放大查看图片的功能,然后我就在网上搜索了一下资料,看到了photoswipe这个插件,后来试了试,确实挺好用的,它可以实现手势放大缩小查看图片,左右滑 ...

  7. WCF学习记录(一)

    在这里先简单记录下WCF配置的过程,关于WCF详解,下次再做具体描述. 1. Contract及其实现 a. [ServiceContract(Namespace = "http://www ...

  8. http协议中客户端8种请求方法

    http请求中的8种请求方法 1.opions   返回服务器针对特定资源所支持的HTML请求方法   或web服务器发送*测试服务器功能(允许客户端查看服务器性能) 2.Get   向特定资源发出请 ...

  9. Gym - 100548H The Problem to Make You Happy 2014-2015 ACM-ICPC, Asia Xian Regional Contest (BFS+博弈)

    题意:Bob和Alice在一张有向无环图上移动,给定二者的起点,Bob先手.Bob的失败条件是不能移动或者与Alice相遇.两个人都采取最优策略,求Bob是否会赢 分析:银牌题.先确定所有的失败状态, ...

  10. NGUI制作 《九宫格》 图片

    什么是九宫格图片? 就是一张图片的上下左右四个角是固定的,无论X/Y被拉伸多大,图片都不会失真 效果图 ------> 那在NGUI里面怎么做到呢 1 首先你要把图片添加到NGUI图集里,点击E ...