GIT的使用介绍

简介


  • GIT是一个分布式版本控制软件,2005年发布。

  • 之前的版本控制工具: CVS、Subversion、SVN。

  • 通过GIT进行版本控制的源代码托管服务的主流网站有Github、Gitlab、Bitbucket。

  • 国产的托管平台有:码云,coding。

  • git工具:命令行,编辑器集成,github客户端等方式。

Git很强大,也很简单。全部命令非常多,但完成日常工作只需要掌握 极其少数的命令即可。其他的可以在工作中遇到调整再去学习。建议初学者使用命令行操作, 使用客户端仅查看变化以便理解git的作用。

安装

  • GIT客户端
  • Mac用户安装XCode之后执行GIT命令会提示安装

作用

  • GIT的作用主要有两个:文件管理,多人协作。

文件管理:GIT在不断的备份文件(GIT内部实际上使用的是diff存储每次的更改而不是真正的备份全部)。
多人协作:GIT通过代码合并,分支管理等功能让多名参与者同时开发项目。

核心概念


  • workspace 工作区

  • stage 暂存区

  • repository 本地仓库

  • remote 远程仓库

Mo icon

总的来说分为远程仓库和本地仓库,远程仓储用来储存项目的最新代码,本地仓储用来个人开发,个人可以从远程pull最新的代码,也可以将自己修改的代码push到远程仓储。

术语


单词 释义 单词 释义
repository 版本库 branch 分支
checkout 撤销 reset 重置
log 日志 merge 合并
stash 隐藏 drop 放弃
push 推送 pull

GIT常用命令


安装和配置
  • git help :git子命令和核心概念一览表

    • git help [subcommand]:查看指定git子命令的简介
  • git config

    • git config --list 查看git配置列表
    • git config -e [--global] 查看编辑git配置文件
    • git config user.name "YOUR_NAME" 查看/设置用户名(当前项目)
    • git config user.email "YOUR_EMAIL" 查看/设置用户邮箱(当前项目)
    • git config --global user.name "YOUR_NAME" 查看/设置用户名(全局)
    • git config --global user.email "YOUR_EMAIL" 查看/设置用户邮箱(全局)
  • vim ~/.gitconfig:git配置文件

拉取项目
  • git clone [URL]

    作为一个初学者可以去github上面新建一个账号,随意折腾。

文件操作
  • git add .

  • git add [file1] [file2]

  • git add [dir1] [dir2]

  • git rm:删除文件或文件夹

  • git rm .

  • git rm [file1] [file2]

  • git rm --cached [file1] [file2] 从版本控制中移除但保留文件

  • git mv:重命名

    • git mv [file1] [file2]

很多人误认为git add . 中的 . 是所有的意思。其实, . 指的是相对路径,即当前目录的意思。

提交代码
  • git commit :提交指定文件或者目录到本地仓库
    • git commit - m ’注释‘
    • git commit [file] [folder] -m ‘注释’
    • git commit -am ‘注释’ 提交工作区自上次commit之后的变化,直接到仓库区
    • git commit -amend -m [message] 使用一次新的commit,替代上一次的提交
撤销
  • git checkout

    • git checkout .
    • git checkout [file1] [file2]
    • git checkout [commit_id] [file]
  • git reset

    • git reset [file1] [file2]
    • git reset --hard
    • git reset [commit_id]
    • git reset --hard [commit_id]
隐藏
  • git stash
    • git stash
    • git stash list
    • git stash pop
    • git stash prod

tip:很容易忘记你隐藏了什么,慎用~

查看信息
  • git status

  • git diff

    • git diff :显示本地工作区和远程工作区的差异
    • git diff [file] : 本地仓储指定文件和远程仓储的指定文件的差异
  • git log

    • git log :显示commit历史
    • git log --stat :显示commit历史应每次commit所变更的文件
    • git log -p [files] :显示指定文件每次commit的diff
    • git log -[number] --pretty --oneline:显示最近number次的log
  • git show

    • git show [commit_id] :显示指定commit_id的diff
    • git show [commit_id] [file] :显示指定commit_id下指定文件的diff
分支
  • git branch

    • git branch :显示本地分支列表
    • git branch -r :显示远程分支列表
    • git branch -a :显示本地+远程仓储的分支列表
    • git branch [branch_name]:新建分支,不切换分支
    • git branch [branch_name] [commit_id]:新建分支,并指向指定commit_id
    • git branch -d [branch_name]:删除分支
  • git checkout

  • git checkout [branch_name] :切换到指定的分支

  • git checkout -b [branch_name] :新建分支并且切换到该分支

  • git checkout - :切换到上一次所在的分支

  • git cherry-pick

    • git cherry-pick [commit_id] : 将其他分支的commit提交到当前分支
  • git merge

    • git merge [branch_name] : 合并指定分支到当前分支
远程同步
  • git pull
    • git pull [remote] [branch_name] :拉取远程库中的指定分支与本地分支合并
  • git push
    • git push origin [branch_name] :把当前分支与远程分支合并

远程仓库(即remote)的名字一般都是 origin

参考资料


此文章为作者在学习过程中的总结,用来分享学习。如有错误还请指出。谢谢!

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

推荐阅读更多精彩内容

  • 第一部分是文档,为了日后查看方便放到了前边[可能敲错了,详见阮一峰老师的文章]http://www.ruanyif...
    白璞1024阅读 1,016评论 0 49
  • 昨天在同事电脑上操作了一把cherry-pick代码,发现很多功能不用,就慢慢忘记了,梳理了下流程图: git c...
    gogoingmonkey阅读 664评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,655评论 4 54
  • 这蒙蔽双眼的现世的郁郁葱葱! 若烈火焚过的大地上黄草仍旧丛生, 我愿废墟中也探出野花新鲜的骨朵。
    鹘鵃阅读 505评论 1 16
  • 文:‖18歲的小仙女 上週日和姚老師以及一大群坐在迎檢的辦公室裡暢談。突然說著說著,所有人安靜了。 “尷尬了,突然...
    Visby阅读 199评论 0 1