【Git】Git简易使用手册

关于版本控制

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版 本。采用版本控制系统(VCS)是个明智的选择。有了它你就可以将某个文件回溯到之前的 状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查 出是谁最后修改了什么地方从而造成某些怪异问题,又是谁在何时报告了某个功能缺陷, 等等。使用版本控制系统通常还意味着,就算你胡来搞砸了整个项目,把文件改的改,删的删,你也可以轻松恢复到原先的样子。而由此额外增加的工作量却微乎其微。

1 本地版本控制系统

大多本地版本控制系统都是采用某种简单的数据库来记录文件的历次更新差异。如下图:

本地版本控制

2 集中化的版本控制系统

这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或 者提交更新。如下图:

集中化版本控制

3 分布式版本控制系统

在这类系统中,诸如 Git,Mercurial,Bazaar 还有 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。如下图:

分布式版本控制

安装Git

有许多安装方式,概况起来主要有两个,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。

  1. 在Linux上安装

    如果要在Linux上安装预编译好的git二进制安装包,可以直接使用系统提供的包管理工具。在Fedora上yum安装:

    $ yum install git-core
    

    在Ubuntu这类Debian体系的系统上,可以用apt-get安装:

    $ apt-get install git-core
    
  2. 在Mac上安装

    在Mac上安装git有两种方式。最容易的当属使用图形化的git安装工具,下载地址:

    下载地址

    另一种是通过Macports(http://www.macports.org)安装。安装好Macports之后,使用下面的命令安装git:

    $ sudo port install git-core +svn +doc +bash_competition +gitweb
    
  3. 在Windows上安装

    • 有个叫做msysgit的项目提供了安装包,可以从Google code的页面上下载安装文件:

    下载地址

    安装完之后,就可以使用命令行的git工具了,另外还有一个图形界面的git项目管理工具。

常用git命令

  1. 用户信息配置

    要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次git提交都会引用这两条信息,说明是谁提交了更新。

    $ git config --global user.name "" 
    $ git config --global user.email ...
    
  2. 设置的是默认使用的文本编辑器

    默认会使用操作系统指定的默认编辑器,一般可能会是 Vi 或者 Vim。也可以重新设置:

    $ git config --global core.editor ...
    
  3. 获取帮助说明指令

    git help [子命令]
    
  4. 初始化本地仓库

    使用以下命令会生成一个.git文件夹(本地代码仓库),.git文件夹用来管理本地代码,修改上传,版本回退。

    git init
    
  5. 查看配置信息

    查看信息是否配置成功

    git config -l
    
  6. 将创建的文件添加到stage暂存区

    git add .
    
  7. 提交文件到指定的分支(默认mater分支)

    git commit -m "(添加注释说明)"
    
  8. 删除文件并提交

    git rm 文件名
    
  9. 将删除的文件提交到本地库

    git commit -m "(添加注释说明)"
    
  10. 查看日志

    查看git的更新日志和40位哈希值版本号

    git log
    

    查看git的更新日志和7位哈希值版本号

    git relog
    
  11. 代码版本回退

    重置到当前版本 git reset --hard HEAD
    重置到上上个版本 git reset --hard HEAD^^
    重置到往上3个版本 git reset --hard HEAD~3
    重置到指定版本 git reset --hard 七位版本号
    
  12. 恢复

    恢复某次提交的状态 git revert <$id> 
    恢复最后一次提交的状态 git revert HEAD
    
  13. 查看、切换、创建、删除分支

    • 查看分支

      查看远程分支 git branch -r

      查看各个分支最后提交的信息 git branch -v

      查看已经被合并到当前分支的分支 git branch --merged

      查看尚未被合并到当前分支的分支 git branch --no --merged

    • 切换分支

      git checkout <branch>

    • 创建新分支

      创建新的分支并且切换过去 git checkout -b <new_branch>

      创建基于branch分支的新分支new_branch git checkout-b <new_branch> <branch>

      把某次历史记录checkout出来并创建新分支 git checkout $id -b <new_branch>

    • 删除分支

      删除某个分支 git branch -d <branch>

      强制删除某个分支(未被合并的分支在被删除时需要强制) git branch -D <branch>

  14. git暂存管理

    暂存 git stash

    列所有暂存区 git stash list

    恢复暂存区的内容 git stash apply

    删除暂存区 git stash drop

  15. git远程仓库管理

    查看远程服务器地址 git remote -v

    查看远程服务器仓库状态 git remote show origin

    添加远程仓库地址 git remote add origin ...

    删除远程仓库 git remote rm <repository>

  16. git远程分支管理

    • 远程分支抓取

      抓取远程仓库所有分支更新并合并到本地 git pull

      抓取远程仓库所有分支更新并合并到本地,不要快进合并 git pull --no--ff

    • push远程分支

      push所有分支 git push

      将本地分支推到远程主分支 git push origin master

      将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库) git push -u origin master

      创建远程分支 git push origin <local_branch>
      创建远程分支 git push origin <local_branch>:<remote_branch>
      先删除本地分支,然后再push删除远程分支 git push origin :<remote_branch>

Git与GitHub

​ GitHub是目前为止最大的开源Git托管服务,并且是少数同时提供公共托管和私人托管服务的站点之一。

接下来的内容主要描述讲解如何使用git来将本地仓库与GitHub账户的仓库建立连接。

  1. 建立本地git仓库

    进入你要同步的本地项目的根目录下,执行git命令:

    git init

  2. 将项目中所有的文件添加到仓库中

    git add .

    如果只想添加某个特定的文件,只需把 . 换成特定文件名即可。

  3. 将add进来的文件提交到仓库

    git commit -m "(添加注释语句 )"

  4. 在自己GitHub上创建一个仓库(repository),界面如下:

    创建仓库

    Repository name:填写仓库名称

    Description:描述,填写仓库的主题、内容

    Public、Private:仓库类型可选:公有、私有

    Initialize this repository with a README:初始化readme说明文件

    最后,点击Create repository就可以成功创建仓库了。

  5. 获取仓库地址

    要想本地仓库与远程建立连接,需要有远程仓库的地址,获取方法如下图:

    获取仓库地址

  6. 将本地仓库关联到GitHub上

    进入本地仓库目录,执行如下git命令:

    git remote add origin ...(远程仓库地址)

  7. 在上传本地目录之前,要先pull一下,执行如下git命令:

    git pull origin master

  8. 上传本地仓库到GitHub远程仓库

    git push -u origin master

  9. 执行完成,如果没有异常,等待上传完成就上传成功。期间会要求输入账户名和密码,只需要输入GitHub的账户和密码就行。

Git GUI

Git有提供图形界面,下面简要介绍如何使用。

  • 打开Git GUI,在右下角处选择"重新扫描",如下:

    扫描新的改动
  • 扫描完成后,在左上角处会显示"未缓存的改动",如下:(点击左边的图标即可将文件添加到已缓存区)

    未缓存
  • 点击左侧图标,将"未缓存文件"添加到"已缓存文件",如下:

    已缓存
  • 在"提交描述"框内填写此次修改的目的和原因,然后提交。

    第一行:一句话概况你做的修改。

    第二行:空行。

    第三行:请描述为什么你做的这些改动是好的。

    提交描述

  • 最后提交,会要求输入用户名和密码,同样是GitHub的账户名和密码即可。

    账户
    密码
  • 上传成功,提示如下:

    上传成功

大概流程差不多这样了,还有其他一些功能,比如分支管理,等深入学习了有时间再分享。

后言

感谢阅读,欢迎指教。本人简书和GitHub —>(简书/GitHub

good luck!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容