GIT学习与实战记录

创建版本库repository
mkdir f:/gitlearn
cd f:/gitlearn
git init
更新(新增、修改、删除)文件到git仓库
1 git add <file>  #如果有多个文件,重复敲多行代码
2 git commit -m "此次提交的说明"  #提交

添加当前目录下的所有文件夹及文件 git add .(后面为“.”)

添加整个文件夹  git add directoryname/

删除的另一种写法:

1 如果非git删除(手动、rm file),使用git checkout -- file.txt即可恢复文件,因为版本库还存在文件
2 如果使用git rm file.txt,且未执行git commit(此时,文件还在暂存区),想要恢复文件,先执行 git reset HEAD file.txt,再执行git checkout -- file.txt,即可恢复文件
3 删除版本库的文件,使用git rm file.txt,再执行git commit
查看当前git仓库状态
git status #列出需要更新的文件
git diff readme.txt #并显示更改的内容
git log --pretty=oneline #查看日志
版本回退
git reset --hard HEAD^ #会退到上一个版本,^的个数表示上上...上个版本,可以写成HEAD~100,标识退回到前100个版本

git reset --hard commit_id #根据版本id,让当前工作空间回退到某一个指定的版本,id可以不用写全,git会自动检索,也有可能检索到多个版本,就不行了

总结:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
工作区与暂存区
工作区与暂存区.jpg
撤销修改

错误使用git add后,直接 git reset,撤销所有添加文件

  • 文件修改后,未使用git add命令,不在暂存区
git checkout -- readme.txt
可以将修改内容撤销,与版本库最新版本代码一致
  • 文件修改后,执行了git add命令,已存在于暂存区
两步执行
git reset HEAD readme.txt    #既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
git checkout -- readme.txt     #把readme.txt文件在工作区的修改全部撤销
远程仓库,秘钥生成配置

git本地仓库,可以是多台机器,把每台机器生成的公钥添加到github SHH keys中,这样本机就可以通过私钥访问github仓库

本机生成公钥和私钥的命令:
打开git bash,在用户主目录下执行 $ ssh-keygen -t rsa -C "youremail@example.com",一路回车键使用默认值,即可生成.shh目录,该目录下有两个文件id_rsa和id_rsa.pub,分别为私钥和公钥,将公钥添加到github SSH keys中即可
本机生成私钥公钥.jpg

github公钥添加成功示意图.jpg
添加远程仓库
1 先在github上建立一个空库
2 使用命令git remote add origin git@github.com:chnqi/gitlearn.git;

总结:
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
方法二:第一种有时一直报错 ,用此种方式
1 在github上建立空库
2 git clone git@github.com:chnqi/gitCloneTest.git
3 进入下载的目录,执行git init
4 因为远程clone下来的,已经有了关联关系,可以不执行git remot add origin git@github.com:chnqi/gitCloneTest.git
5 git push -u origin master
从远程仓库克隆
git clone git@github.com:chnqi/gitCloneTest.git
git分支

速度远快于SVN,使用的是指针指向分支的方式
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险


分支概念图解.png
Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

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

推荐阅读更多精彩内容

  • Git教程 一、Git简介 1.1. Git的诞生1.2.集中式的vs分布式 二、安装Git 三、创建版本库 四、...
    曹渊说创业阅读 934评论 0 2
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 1,403评论 0 3
  • 第一部分是文档,为了日后查看方便放到了前边[可能敲错了,详见阮一峰老师的文章]http://www.ruanyif...
    白璞1024阅读 1,013评论 0 49
  • 一 Git配置和仓库初始化 下面会介绍Git的使用,每个小节里会讲解各个功能在命令行中的实现方式,并在每小节的最后...
    Happioo阅读 3,320评论 0 5
  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 1,048评论 4 18