Git基本教程

git作为一个分布式版本控制软件,已经成为我们工作中使用的最广泛的工具。
git详细介绍点这里

三个概念

  • 已提交(mommitted)
    该文件已经被安全滴保存在本地数据库种了。例如git clone 其实就是这个状态
  • 已修改(modified)修改了某个文件,但还没提交保存
  • 已暂存(staged)把已经修改的文件放在下次提交时要保存的清单里

三个区域

  • 工作区(也称工作目录),working directory
  • 暂存区 ,satge/index
  • 历史记录区(也称版本区),history

    转个阮一峰老师的图吧
    QQ截图20171205221637.png

几个常见名词

  • remote 远程仓库
  • origin 一般默认远程仓库的标签
  • master 主支干
  • Dev 分支

基础命令

  • 第一次使用需要设置用户名和邮箱
    git config --global user.name "name"用户名
    git config --global user.email "email address"邮箱
  • git add . 把文件的所有改变都放入暂存区
  • git status 查询文件状态
  • git rm 删除文件
  • git mv 重命名文件
  • 提交到本地仓库有几个命令
    git commit -am "备注信息"
    git commit -a "备注信息"
    git commit -m "备注信息"
    注意备注信息是必须要填写的,而且尽量简明扼要
  • git pull 用来更新本地仓库版本的
  • git push 提交到远程仓库

远程本地操作

  • git clone 远程下载,最常用的命令
    git clone origin "项目地址"
    注意,地址协议有几种、http,https,git等,但是推荐用ssh,也就是git协议,因为最快
  • 使用ssh协议,则必须要有公私钥对,没有的话,必须要设置一个,不会的点这里
  • 修改文件用vim打开,修改后退出保存,安利自己写的vim使用教程
  • 然后git add. git commit git push

本地文件推送到远程仓库

  • mkdir 文件夹名 新建文件夹
    touch 文件 新建文件
  • 最重要的步骤:git init
    git是本地仓库和远程仓库之间的传送工具,可是我们刚刚只是建了文件夹,
    文件夹又不是仓库,自然无法git传送,所以我们要把文件夹变成仓库
    这里重要的概念就是,仓库里有个隐藏的.git的文件,只要文件夹里有.git 就行了
    git init初始化文件夹为本地仓库
  • 这时我们git add. git commit git push 时 它会报错说找不到远程库
    我们clone的时候,远程仓库会自动建立两者的链接关系,但我们只在本地创建仓库
    和远程库就没有关系了,这时我们就得让它俩有关系
    git remote add origin 远程库地址添加远程库标签
    git remote -v 查询本地仓库的远程仓库地址
    git remote set-仓库地址 仓库名 修改远程仓库地址
  • 这时我们就可以提交了

分支操作

  • 分支操作可以说是git 使用中最重要的操作了(不懂什么是分支,请自行谷歌/百度),首先要知道,仓库有且只能有一个maser分支,可以说是主干,所有提供给用户使用的正式版本,都在这个主分支上发布。

  • git branch查看本地分支列表
    git branch -r查看远程分支列表
    git branch -a 查看所有本地远程分支

  • git branch dev 创建本地库dev分支
    git checkout dev 切换到dev分支
    这两个可以简写成下面这个命令
    git checkout -b dev

  • 合并分支
    首先用git checkout 分支名 切换到需要合并的分支上去,一般都是master分支
    然后使用git marge 需要被合并的分支名 合并分支到主分支上

  • 删除分支
    git branch -d 分支名

  • 删除远程分支
    git push origin --delete [branch-name]
    git branch -dr remote/branch

撤销操作/版本回滚

  • 这次简单介绍下,我理解也不是很透彻,之后会专门写一篇关于此的文章
  • 一般是两种用法git resetgit revert
  • git reset --"参数"一般参数有hardmixedsoft
    git reset --hard 版本回退,同时工作区和暂存区的文件也回到此版本时的状态
    git reset --mixed 默认参数,改变引用文件,不改变工作区文件,但是会改变暂存区文件
    git reset --soft只修改文件,不会改变暂存区和工作区文件
    可以这样理解,当你需要彻底回到某个提交版本时,就用hard;若是想保留自己修改过的文件,就用mixed,保留下文件源码,这也是默认方式;若是仅仅只是想撤销某次提交,就用soft,保留下所有修改文件
  • git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
    git revert HEAD 撤销前一次 commit
    git revert HEAD^ 撤销前前一次 commit
    git revert 的撤销并不是意义上删除,而是重新提交一次commit命令,
    只是这个命令内容刚好和要撤销的那个命令完全相反,造成了回到错误提交状态之前,但是你查记录会发现,里面会有之前错误的commit ,也有这次的commit
  • 两者区别,最大的区别在于,git revert 时,版本是前进的,而git reset时,版本其实是回到撤销的命令的版本
    我的理解是,revert,就相当于政府连续发布了两条完全相反的命令,造成了状态上的恢复,但是大家知道确实有过这个命令,而reset则是干脆删除了这个命令,直接强制恢复,抽取了的记忆,这个是断层的,不存在了,认为什么都没发生
  • 更深层的就只能大家在使用中去体会了,我以后会写一篇详细的文章。

写在最后

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

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,676评论 1 17
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,456评论 1 26
  • 刚刚和好友谈起金钱的事情,很多人为了钱怎么地怎么地的,我想给大家讲个故事,看看我们古人的金钱观,古人的高风亮节。 ...
    右边的雨阅读 1,103评论 0 0
  • 元宵佳节到大街小巷放鞭炮,期盼的就是,一家人团团圆圆享受亲情时刻。一大早就被外婆从睡眼朦胧中唤醒,到庙里烧香拜拜。...
    笛夕阅读 198评论 4 3
  • 化妆顺序: 护肤:洁面—水—眼霜—精华—乳液(没有隔离了。。。) 彩妆:气垫粉底—遮瑕膏—修眉—画眉—眼影—眼线—...
    大琳DL阅读 545评论 0 0