GIT笔记

Git教程-廖雪峰

Git简介

分布式vs集中式

git是版本控制系统,与svn不同的是git是分布式,svn是集中式

Paste_Image.png

Paste_Image.png

安装

简单设置

配置文件
.git/config 当前仓库的配置文件
~/.gitconfig 全局配置

设置别名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

设置用户名和邮箱
git config --global user.name "xxx"
git config --blobal user.email "xxx@xxx.com"

创建版本库

创建版本库

cd learngit
git init
# 在某目录下执行命令 git init 后
# 该目录会生成一个.git的隐藏文件夹,这个目录就是一个版本库了
# 所有版本控制系统只能跟踪文本文件的发动(如TXT文件中删除了第4行,而二进制文件作为一个整体)
# 统一用UTF-8编码

添加一个文件到暂存区(Stage)

vi readme.txt
git add readme.txt

将文件提交给HEAD

git commit -m 'my first commit'

时光穿梭

工作区与版本库

当前文件夹是工作区
.git文件夹是版本库
创建版本库是,自动创建了一个master分支
工作区--暂存区(stage/index)--当前分支(master)--远程库

Paste_Image.png

查看仓库中文件的状态

git status
# 通过该命令可以清楚的了解当前版本库中的文件处于什么状态

文件的比较(只能比较工作区/Stage中的文件与Head中的不同)

git diff readme.txt
# 比较的是工作区与Stage中readme.txt的差异

git diff HEAD -- readme.txt
# 比较的是工作区与版本库(HEAD)中的readme.txt的差异
# HEAD 当前版本
# HEAD^ 上一版本
# HEAD^^ 上上版本
# HEAD~100 往上100个版本

查看提交历史

git log
git log --pretty=oneline

git reflog
# 查看执行的每一条命令

版本回退

git reset --hard HEAD^
git reset --hard comment_id(ID号,前7位就可以)

撤销修改

工作区----暂存区----当前分支
git checkout -- readme.txt
# 撤销工作区的修改
# 暂存区的内容覆盖工作区(丢弃工作区的修改)
# 没有--,该命令就是切换分支的命令了

git reset HEAD readme.txt
# 撤销暂存区的修改
# 版本库的内容覆盖暂存区(丢弃暂存区的修改)

git reset --hard HEAD^
# 撤销版本库的修改,版本回退

暂存区修改

# 这样一种场景:工作区,暂存区,版本库里内容一样,类似.project类似这种eclipse的项目配置文件也存在于版本控制中,现在把.project这类文件加入到忽略名单后

git rm --cached .project
# 这个命令是把.project从暂存区中删除
git commit -m "delete .project"
# 提交暂存区

删除文件

git rm readme.txt
# 与如下两个命令等价
rm readme.txt
git add readme.txt

git commit -m "delete"

远程仓库

免登录操作

Windows下生成ssh-keygen
1.安装Git
2.打开Git Bash
3.输入 ssh-keygen -t rsa -C "demo@gmail.com"

Linux下生成ssh-key
ssh-keygen -t rsa -C "demo@gmail.com"
cat ~/.ssh/id_rsa.pub
~/.ssh/id_rsa  这是私钥
~/.ssh/id_rea.pub  这是公钥
验证
ssh -T git@git.oschina.net

关联远程库

git remote add origin git@github.com:demo/learngit.git
# 把本地仓库与远程仓库相关联
# demo:github账户名
# origin:远程库的名字

查看远程库

git remote
git remote -v

推送到远程库

git push -u origin master
# 把本地所有内容推送到远程库上
# -u参数,不但会把本地master分支推送到远程master分支,还会把本地master分支与远程master分支相关联
# 第一次推送用-u,以后用就可以不用了
git push origin master

从远程库抓取

git pull origin master

从远程库克隆

git clone git@github.com:demo/gitskills.git        ssh协议,速度快
git clone https://github.com/demo/gitskills.git    https协议

分支管理

分支操作

git branch   // 查看当前分支
git branch dev  // 创建分支dev
git checkout dev // 切换到分支dev
git checkout -b dev // 创建并切换到分支dev
git merge dev // 合并指定分支(dev)到当前分支

删除分支dev
git merge -d dev // 如果分支有未提交的这样删除不了
git merge -D dev // 强制删除

查看分支合并情况
git log --pretty=oneline --graph --abbrev-commit

master转gh-pages
创建一个没有父节点的分支gh-pages
git checkout --orphan gh-pages


标签管理

使用GitHub

自定义Git

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

推荐阅读更多精彩内容

  • 最近使用Git时感到有些生疏,所以利用晚上空余时间将廖雪峰Git教程重新系统的学习一边并做了笔记,温故知新。 Gi...
    LannisZheng阅读 652评论 1 3
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,626评论 9 163
  • 新年伊始,与谁同行智旅丽江2号从济南机场开始,晚上7点的飞机我们师兄4人加迎风和志先哥,在机场下午汇合一起去丽江参...
    悟道爱永恒阅读 139评论 0 0
  • 秋天了 没有叶子黄了 风还在吹着 望那远处的山峰的 树一棵 秋分了 叶子没有落地了 云还在飘着 望那不远处的溪中的...
    追蝉斋阅读 269评论 0 0
  • 跟朋友聊天,偶尔会遇到一些自己境遇不太好,在提起他的一些事业发展比较顺利朋友时,心里不由自主表现出一种抵触甚至仇视...
    补拙莫如勤LV阅读 282评论 2 0