Git 相关命令操作全

1.SourceTree 是什么?

  • SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。

  • 特点:分布式

  • 优点:就是当前写完了代码, 提交到本地仓库后, 不用害怕丢失, 而且也可以做版本的记录, 如果将来有一天想找回几天前的代码, 也是可以的.
  • 备注:代码的合并是从远程仓库拉取下来别人新写的代码, 然后在本地仓库进行合并(以及如果有冲突由程序员解决)

2.Sourcetree && Git 部分名词解释

1.克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
2.提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
3.检出(checkout):切换不同分支
4.添加(add):添加文件到缓存区
5.移除(remove):移除文件至缓存区
6.暂存(git stash):保存工作现场
7.重置(reset):回到最近添加(add)/提交(commit)状态
8.合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
9.抓取(fetch):从远程仓库获取信息并同步至本地仓库
10.拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge 
11.推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
12.分支(branch):创建/修改/删除分枝
13.标签(tag):给项目增添标签
14.工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
15.终端(terminal):可以输入git命令行

用git命令的话 开发中按照以下步骤进行代码提交

0.cd命令进入项目目录然后如下

1. 修改完代码后,git status查看自己的文件修改列表;

2. git diff <文件名> 查看自己的文件修改记录;

3. git add <文件名> 添加需要提交的文件列表;

4. git commit -m "提交说明"

5. git pull,更新一下当前最新的代码;

6. git push 提交代码

3.使用Sourcetree

1.第一步:安装
(1).图标:

(2).不建议在appstore直接搜索下载SourceTree,因为appstore里的版本已经十分老旧(好像是2012年更新的)。建议前往官网下载安装最新版,这里提供一个SourceTree for Machttps://www.sourcetreeapp.com
(3).如果看到下面这个界面就说明安装成功

2.以开源中国为例作为服务器代码托管(也可以用gitlab、github座位服务器代码托管)
(1).先注册开源中国,然后登录,拉到最下面点友情链接的第三个“码云”

屏幕快照 2016-08-26 上午10.45.43.png

或者直接戳这http://git.oschina.net 然后注册登录,界面如下:

然后会给你注册时候的邮箱,发送一个验证邮件,注册一下

然后点击链接,会跳转到主页

备注:已注册的童鞋忽略这一步
(2).创建项目
1).如果你是项目的创始人(小红), 那么你就点击项目(进行创建)

  1. 第一步, 创建项目

  2. 项目创建成功, 如下图
  3. 因为我创建的私有项目(如果是私有项目, 则执行下面这步, 如果不是则略过下面这步(步骤3.x))
    (3.1)点击右上角管理

    (3.2)点击添加项目成员, 我这里另一个(小明)是lidongxu_work@126.com

    这里说一下:

    管理员: 最高权限
    开发者: 可以上传或者克隆(下载)代码 (一般给予这个权限)
    观察者: 只能下载, 无法上传
    报告者: 只能看, 和评论, 什么也不能干!

    (3.3)输入对方oschina邮箱账号, 然后给予权限

    回到项目首页(注意是点你的项目, 例如我这里是a1209woshi)

  4. 获取克隆的网址(给别人使用, 让别人可以用这个网址, 把对应的远程仓库东西克隆(下载)到本地)
    我这里获取到的是 https://git.oschina.net/women2323/a1209woshi.git
  5. 回到SourceTree, 新建本地仓库

    填写克隆URL地址如果是第一次使用SouceTree(并且是私人项目), 会弹出让你输入你的oschina账号和密码(小红)

  6. 上传项目到远程仓库(供别人(小明)下载)
    (6.1) 找到本地仓库文件夹(我的在桌面)

    (6.2) 然后看工作区有变化, 然后把未暂存文件, 放入已暂存文件区中.

    (6.3) 这里说一下, Git的工作原理图

    (6.4) 然后commit(提交)到本地仓库分支中

    (6.5) 养成一个好习惯, 先从远程仓库拉去一下, 然后在本地合并好了, 然后再推送回到远程仓库中, (也就是说, 合并代码是在本地进行的) (注: 如果你不拉取, 很容易把别人刚提交的代码, 顶掉)

    (6.6) 回到网页上去看看, 刷新下, 会看到我刚传的项目

  7. 别人如何拉取这个项目, 把HTTPS克隆网址给他(如果是私有项目, 请确定把对方oschina账号添加到你的项目中了)
    (7.1) 同样, 从URL克隆(新建本地仓库)

    (7.2) 然后填入克隆网址, 然后选择本地仓库位置

    (7.3) 进入到工作区之后, 因为我是要克隆代码从远程仓库到本地, 所以直接点击拉取

    (7.4) 你会惊奇的发现, 本地仓库里, 已经有了远程仓库的东西啦!!(以后再写好代码, 只需要执行第6步)就可以了, 这样就可以方便和别人进行团队协作开发了)

4.用x-code管理代码

不用Sourcetree,直接用X-code进行代码版本管理,
参考http://www.jianshu.com/p/300f8fd043c5

 

source tree传到GitHub:

http://www.jianshu.com/p/be9f0484af9d

git - 管理项目(SourceTree的使用)的更多相关文章

  1. 如何用Android Studio同时使用SVN和Git管理项目

    这篇来讲讲如何在 Android Studio 上同时用 SVN 和 Git 来管理项目.我知道,你肯定会说我吃饱了撑着,没事找事做,为啥要同时用 SVN 和 Git 来管理项目.问题是,我也不想啊, ...

  2. 【Unity】使用Git管理项目及其.gitignore写法

    完整的进行Unity 3D源码用Git管理的流程: 1 新建文件夹(路径要求非空) 2 新建U3D项目 3 添加.gitignore文件 获取已有的U3D项目 修改Unity 3D编辑器: Enabl ...

  3. IDEA使用Git管理项目

    今天将项目使用Git管理了,IDEA. 第一步: 第二步:

  4. vs2015使用Git管理项目

    初级 1,在码云上去注册一个帐号(码云的私有库是免费的,安全性怎么样我不知道) 2,在码云上新建一个项目,把相关的开发人员加到这个项目里,会得到这个项目在码云上的远程仓库的地址. 3,打开vs2015 ...

  5. 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装

    现在代码管理都流行用git了,小编以前用过clearcase, svn,vss等.现在用了git后,发现git才是最好的,我觉得它最吸引人的地方应该是它的分布式管理吧.git的具体学习,读者可自己去网 ...

  6. 【转载】使用阿里云code和git管理项目

    使用代码云托管和git来管理项目可以使多客户端和多人开发更加高效.通过对比github,bitbucket和国内一些云托管服务发现阿里云在项目空间和传输速度及稳定性上更能满足公司开发的要求.本文将介绍 ...

  7. 用Git管理项目进行版本控制

    一.安装 1.1windows 要在Windows系统中安装Git,请访问http://msysgit.github.io/,并单击Download.安装. 1.2 在 Linux 系统中安装 Git ...

  8. 一个看起来不像中年人的中年人,带着两个初出茅庐的小伙子儿,用git管理项目代码的进击之路

    一个中年人的孤独前行 我们这一代人,是上个世纪的人,活在当下,已然成为社会上的中流砥柱. 80年代生人,遥望我们的父辈,均是5.60年代的人,迟迟暮年,夕夕老矣.而我们,正当年,却又时光飞逝,很快便要 ...

  9. Git 管理项目

    一个很小的HTML项目,使用.Git来记录和跟踪这个项目.包括以下内容: 创建版本库. 添加与修改文件. 创建新分支. 打标签并整理版本库. 克隆版本库. 创建版本库 Creating a Repos ...

随机推荐

  1. JSTree如何实现第二级菜单异步从数据库读取。

    参考文档: https://www.cnblogs.com/luozhihao/p/4679050.html http://jsfiddle.net/vakata/2kwkh2uL/5/ 核心的关键点 ...

  2. Ubuntu 插入鼠标自动禁用触控板

    http://ubuntuhandbook.org/index.php/2016/11/install-touchpad-indicator-in-ubuntu-16-04/ arrive@HP443 ...

  3. Python函数参数&time、OS、json模块

    ##可变参数 PORT = 3306 #常量 def mysql(host,user,password,port,charset,sql,db): print('连接mysql') # mysql(' ...

  4. maven build时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test

    [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ ...

  5. Python(day1)

    一.Python的属于解释型语言. 编译型:一次性,将全部的程序编译成二进制文件,然后再运行. 优点:运行速度快. 缺点:开发效率低,不能跨平台. 解释型:当你的程序运行时,一行一行的解释,并运行. ...

  6. MySQL 中 having 和 where 的区别

    区别一: where 是数据从磁盘读入内存时候一条一条判断的 having 是将所有数据读入内存,在分组统计前,根据having的条件再将不符合条件的数据删除 区别二: having 子句可以使用字段 ...

  7. 20190108C++MFC error 2065 未定义XX原因以及解决方式

    今天写界面的时候,明明直接在rc和reourse.h里面加了控件下面是rc和reourse.h照片 编辑的时候一直报错,找了很久发现是新定义的控件有两处定义,定义到其他工程里了所以才会这样,把其他工程 ...

  8. SQL、索引

    (二)数据库索引 数据库索引是用于提高数据库表的数据访问速度的. 数据库索引的特点: a)避免进行数据库全表的扫描,大多数情况,只需要扫描较少的索引页和数据页,而不是查询所有数据页.而且对于非聚集索引 ...

  9. mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  10. js-day01-js语言基础

    JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...