git介绍

一种常见的版本控制工具

获取
克隆仓库

git支持以ssh或者http的方式来标识远程仓库

git clone git@github.com:username/project.git
git clone https://github.com/username/project
git clone git@github.com:username/project.git  ~/projects/path   # 将远程仓库克隆到本地指定目录

以上两条命令作用相同,均是将github上的仓库克隆到本地

拉取远程仓库
git pull # 拉取远程仓库的更新,并与本地修改合并
git fetch --all # 获取最新代码到本地,不进行合并操作
git reset --hard origin/master  # 把HEAD指向最新的版本

在拉取更新时,若直接执行git pull操作,则会将远程更新与本地更新合并,此时本地文件将出现待提交状态,即使本地并未修改

若仅仅想拉取远程修改并覆盖更新本地的文件,需执行以上fetch及reset命令

暂存

在git中,可通过stash子命令将本地修改暂存起来,并在合适时取出来并合并。
假如项目中遇到类似这种情况:

当前本地正处于主分支上开发,功能做了一半,尚未提交修改
被告知线上稳定分支存在bug,急需修复

此时便可通过git stash命令将本地修改移至暂存区,同时本地切换至稳定分支进行修改bug,并进行提交等操作。
完成后再切换回主分支,同时通过stash pop或stash apply命令将之前暂存的修改取出来,便可继续之前的开发工作。

暂存当前修改

每次暂存都会在暂存区中产生一条暂存记录

git stash 
查看暂存列表

列表中每条暂存记录会有一个编号,类似于stash@{x}这种格式

git stash list 
取出暂存记录

stash pop 命令取出暂存记录,与当前分支合并,同时该记录会从暂存列表中删除
stash apply 作用与stash pop,但取出后不会将记录删除,所以可以多次执行

git stash pop stash@{x}
git stash apply stash@{x}
删除暂存记录
git stash drop stash@{0}
提交

git提交需要两步操作,首先将修改commit到本地仓库,再将本地的提交push到远程仓库,之后才可被其它人下载到。

查看本地仓库状态
git status

status子命令显示当前本地仓库的状态。未提交、未加入版本控制、已删除、版本冲突等可通过该命令查看。

将本地修改加入待提交列表
git add .  # 将所有本地修改加入版本控制
git add abc.txt  # 将指定文件的修改加入版本控制
提交本地更改
git commit -m "提交备注"

在commit时仅仅将修改提交的本地仓库,其它人无法获取到,直到执行push操作,将本地仓库的提交推到远程仓库

远程仓库
查看

远程仓库可以通过remote子命令查看,-v参数可以查看远程仓库具体的指向地址。

$ git remote
origin
$ git remote -v
origin  git@github.com:username/project.git (fetch)
origin  git@github.com:username/project.git (push)
删除

通过remote rm 子命令删除远程仓库

$ git remote rm origin   # 移除origin远程仓库
添加

使用remote add子命令添加远程仓库,其中origin无特殊意义,是远程仓库在本地的一个助记简称。

$ git remote add origin https://github.com/pnnh/chatcpp.git
修改

使用remote rename子命令修改远程仓库在本地的助记简称。

$ git remote rename origin master # 将origin仓库重命名为master
详情

remote show子命令可以查看远程仓库的详情描述,这些信息包括:
比如查看所有处于跟踪状态中的远端分支,查看运行 git push 时缺省推送的分支是什么,哪些已同步的分支在本地存在,但在远端服务器上已被删除 ,运行 git pull 时将自动合并哪些分支等等。

$ git remote show origin
推送本地修改
git push
# 只推送本地master分支的提交到origin远程仓库,需要先设置本地分支与远程分支的跟踪关系
git push origin master 

将修改commit到本地仓库时,无法被其它人下载到,版本还保留在本地。此时可通过push子命令将本地修改推送到远程仓库。

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

推荐阅读更多精彩内容

  • 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集...
    2015哈哈哈阅读 445评论 1 3
  • git 是什么? git 是目前世界上最先进的分布式版本控制系统。 git与SVN的主要区别 Git是分布式版本控...
    紧张的牛排阅读 4,339评论 0 17
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,347评论 0 1
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,383评论 0 7
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 1,393评论 0 3