Git学习总结

git

Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。
作为一个开发者,git这样的技能基本上是必备技能了。以前的时候接触了git,但没有系统的学习,只是简单的了解几个基本命令。最近几天系统的学习了这样技能。由于git教程网上很多,我就不重复造轮子了,有的轮子要造,但有的轮子造起来没有多大意义,所以只是总结一下学习的心得和git常用的命令。

git是什么?

  • Git是目前世界上最先进的分布式版本控制系统,是由Linux 发明者 Linus 开发的一款新时代的版本控制系统。
  • 那什么是版本控制系统呢?
  • 网络定义:版本控制(Revision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一代码文件案都得到同步。是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 简单来讲,版本控制系统就是在开发过程中对我们的代码进行管理的系统。比如:为了防止代码的丢失,我们会把本地和服务器都放置一份或者多份,这时候版本控制系统就可以使本地和远程同步; 在多人协作完成一个项目时,我们需要对一份代码进行更改和管理,这时候不影响别人工作就可以同步别人的代码;代码出现bug,对代码进行紧急的管理或者还原等等。

git的安装

git是一个版本控制系统,所以我们必须下载安装才能使用。mac系统是自带Git的,为了照顾特殊情况,这里也介绍一下。

  • Linux
    首先,你可以输入git,查看一下系统有没有安装Git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

很多Linux会友好地告诉你Git没有安装,并且会告诉你如何安装Git。
通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

$ sudo apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra package will
be installed:
 git-man liberror-perl
Suggested package: 
...
...
Setting up liberror-perl (0.17-1) ...
Setting up git-man (1:1.7.9.5-1) ...
Setting up git (1:1.7.9.5-1) ...

看到类似上面的命令则说明安装成功。
通过命令git --version查看版本:

$ git --version
git version 2.8.1.windows.1
  • Mac OS X
    两种安装方式。
  • 安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/
  • 从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
  • Windows
    Windows系统是默认没有安装git,也没有内置git安装包的。需要手动下载安装。访问下载git安装包:https://git-for-windows.github.io/。下载完成后默认安装即可(可以修改一下安装路径)。
    安装完成,在开始菜单里找到“Git”->“Git Bash”打开,出现一个类似命令行窗口的软件,就说明Git安装成功。

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

Git命令总结

  • 常用操作
git init:初始化一个仓库。
git add <file>:把文件添加到仓库。(注意:是添加到仓库,需要执行提交操作才能把文件放到仓库。本操作实际上就是把文件修改添加到暂存区)
git commit : 把文件提交到仓库。
git status:查看工作区的状态。
git diff:查看修改的内容
git log:查看日志
git log --pretty=oneline:查看排版的日志
git reset --hard commit_id:回退到以前的版本。Git中用HEAD表示当前版本,上一版本为HEAD^,上上版本为HEAD^^,假如为往上100版本,则可表示为:HEAD~100。
git reflog:查看命令历史。可用来确定要回到未来的哪个版本。
git reset HAED file:把暂存区的修改撤销掉,重新放回工作区。
git checkout -- file:丢弃工作区的修改。git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
git rm file:删除一个文件。
  • 远程操作
git remote add origin git@github.com:GitHubName/repo-name.git:关联一个GitHub远程库。通用结构:git remote add origin git@server-name:path/repo-name.git。
git push -u origin master:第一次向远程库推送master分支的所有内容。
git push origin master:向远程库推送最新修改。
git pull:抓取远程的新提交,保持本地和远程同步。
git pull origin master:把master分支的最新状态抓取到本地。
git remote -v:查看远程库信息。
git clone git@github.com:GitHubName/repo-name.git:将github项目clone到本地,被clone的项目将作为远程库。
git checkout -b branch-name origin/branch-name:在本地创建和远程分支对应的分支,名称最好一致。
git branch --set-upstream branch-name origin/branch-name:建立本地分支和远程分支的关联。
git push origin <tagname>:推送某个标签到远程。
git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
git push origin:refs/tags/<tagname>:删除远程标签。(先删除本地的标签)
  • 分支操作
git branch:查看所有分支
git branch <name>:创建分支
git checkout <neme>:切换分支
git checkout -b <name>:创建+切换分支
git merge <name>:合并某个分支都当前分支
git branch -d <name>:删除分支
git merge --no-ff -m "描述" <name>:记录分支情况的合并分支方法。
  • stash操作
git stash:储藏当前工作状态
git stash list:查看储藏的工作列表。
git stash apply:恢复工作状态,但恢复后stash的内容并不删除。
git stash drop:删除最近一次stash的内容
git stash clear:清空所有的stash内容。
git stash pop:恢复工作状态并删除相关stash内容。
  • 标签操作
git tag <name>:新建一个标签。
git tag -a <tagname> -m "描述":新建标签并指定标签信息。
git tag -s <tagname> -m "描述":PGP签名标签。4
git tag:查看所有标签。
git tag -d <tagname>:删除一个本地标签。
git push origin <tagname>:推送某个标签到远程。
git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
git push origin :refs/tags/<tagname>:删除远程标签。(先删除本地的标签)

这只是Git常用的命令。Git极其强大,命令繁多,我只是总结了一些较为常用的命令。

GitHub

  • 我们学习了 Git 之后,怎么才能充分使用这项技能呢?
    答案是 GitHub。GitHub 是世界上最大的开源社区。我相信程序员没有不知道 GitHub 的了。学习 GitHub 同样是程序员的必备技能。当然,Git 并不只是在 GitHub 上使用。我们在工作以后团队之间的合作、代码的管理基本上都是使用 Git。

  • 那么,Git 与 GitHub 之间有什么联系呢?

  • Git 是一款免费、开源的分布式版本控制系统。不管是学习 GitHub,还是以后想从事编程行业,Git都可以算是必备技能了。

  • GitHub 主要提供基于Git的版本托管服务。也就是说现在 GitHub 上托管的所有项目代码都是基于 Git 来进行版本控制的,所以 Git 只是 GitHub 上用来管理项目的一个工具而已,GitHub 的功能远不止于此。所以建议去学习一下 GitHub。

总结

经过两天的系统学习,对Git有了初步的了解。Git的功能非常强大,在本文中只是罗列出了一些常用命令。Git绝不是两天就可以掌握的,但是可以学会Git的基本使用。常用的Git命令本文基本涵盖,并且工作中常用的命令就那么十几条,掌握好这十几条命令,就基本可以得心应手的使用Git。

ikook
2016.10.15


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

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,626评论 9 163
  • Git for windows 本文只是自己的一些学习总结,方便自己查看,如果对您阅读不适,抱歉!!! 常用命令(...
    Lxs_597阅读 329评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,647评论 4 54
  • 人的灵魂来自一个完美的家园,那里没有任何污秽和丑陋,只有纯净和美丽。灵魂来到这个世界,漂泊了很久,寄居在一个躯壳里...
    斑呀嘛斑小斑阅读 165评论 0 3
  • Swift支持函数式编程范式。程序员可以使用Swift写出函数式风格的代码。函数式编程是一种以数学函数为程序语言建...
    wu大维阅读 718评论 1 6