git常用操作详细版

最强参考:廖雪峰git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git安装 (windows)

https://git-for-windows.github.io/ 或者 https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit 上下载msysgit,
安装完成后,在开始菜单里找到 “Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!

image.png

安装完成后,还需要最后一步设置,在命令行输入:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

git初始化

新建一个空文件夹,通过上面的msysgit进入当前文件夹,然后使用如下命令创建git空间

git init
image.png

为了不必要的麻烦,请使用UTF-8 编码

git添加文件

首先在上述的文件夹下新建一个文件 testGit.txt
内容如下:

Git is a version control system.
Git is free software.

使用 git add将上述文件添加到仓库

git add testGit.txt

然后提交,并且附加上传信息

git commit -m "wrote a testGit file"

其中-m后面的信息是注释信息,上传文件到仓库一共包括两步,

git add file
git commit -m "add a file"

可以多次add一次commit

git查看当前文件状态

git status

git查看文件和之前上传的不同

git diff
image.png

绿色的是文件中修改的内容

查看文件提交历史版本信息

git log
image.png

简化输出可以使用

git log --pretty=oneline
image.png

前面的一大串数字就是git的版本号,版本号是递增的

git版本回退

在 Git 中,用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD^,当然往上 100 个版本写 100 个^比较容易数不过来,所以写成HEAD~100

使用reset命令进行版本回退

git reset --hard HEAD^
image.png

此时的版本为上一个版本的信息

这时得到的第二个版本的信息,此时如果想回到第三版怎么办呢,这时在刚才没关闭的窗口中,找到刚才git log的第三个版本的版本号,然后输入

git reset --hard 2ab95bc82af650eefa29af39cf2062a0f13fe34e
image.png

这时候就回到了第三个版本的文件

git版本回退进阶

如果关掉了当前窗口,找不到版本号了,那如何从第二版本进入第三版本呢,这时还必须找到第三个版本的commit id,通过使用命令git reflog来完成

image.png

找到第三个版本添加 GPL的commit Id 2ab95bc
然后

git reset --hard 2ab95bc
image.png

工作区 、 缓存区、 版本库 关系

image.png

每次git commit之前必须先git add,不然如果没有add,内容没有在缓冲区就不会被添加到版本库

丢弃工作区的修改

如果在工作区修改了文件,还没有git add,这时候并不需要这些修改,可以使用git checkout丢掉工作区的修改

git checkout -- testGit.txt

丢掉缓存区的修改

如果在工作区修改了文件,也提交到了缓存区,不过没有提交到版本库,可以使用git reset回退到刚才在缓存区的修改

git reset HEAD testGit.txt
image.png

此时,刚才提交到缓存区的内容就丢掉了,然后再使用上面的git checkout 命令丢掉工作区的修改就好了

git分支branch

git创建分支

$ git checkout -b dev
Switched to a new branch 'dev'

等价于

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

查看当前分支

git branch

切换到其他分支

$ git checkout master
Switched to branch 'master'

合并分支

git merge dev
# 将 dev部分分支和master部分合并

删除分支

git branch -d dev

远程仓库

1、创建SSH Key

ssh-keygen -t rsa -C "729002360@qq.com"

产生id_rsa和id_rsa.pub这两个文件,分别是私钥、公钥

2、登陆 GitHub,打开 “Account settings”,“SSH Keys” 页面:

然后,点 “Add SSH Key”,填上任意 Title,在 Key 文本框里粘贴id_rsa.pub文件的内容:

github-addkey-1

点 “Add Key”,你就应该看到已经添加的 Key:

github-addkey-2

3、添加远程库
在github上找到 “Create a new repo” 按钮,创建一个新的仓库,在 Repository name 填入版本库的名字如learngit2,其他保持默认设置,点击 “Create repository” 按钮,就成功地创建了一个新的 Git 仓库

4、本地与github版本库关联
在本地的learngit2仓库下运行命令,这样就将本地的learngit2文件夹和github的版本库相关联了

git remote add origin git@github.com:minning/learngit2.git

其中 minning 是自己的名字
5、推送本地库到github
把本地库的所有内容推送到远程库上

git push -u origin master
image.png

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git 不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在 GitHub 页面中看到远程库的内容已经和本地一模一样

以后进行推送,使用如下命令就可以了

git push origin master

5-2、题外:如果新建仓库repository TargetOffer时添加了README或者License,在本地执行git push -u origin master会报 error: failed to push some refs to ' 错误


image.png

此时应该执行下面的命令:

git remote set-url origin git@github.com:minning/TargetOffer.git
git remote add github git@github.com:minning/TargetOffer.git
git remote set-url origin git@github.com:minning/TargetOffer.git

从远程库克隆

从远程库将内容克隆回本地
1、在github上新建一个repository仓库,仓库名字为gitskill2,此时远程仓库就准备好了
2、在本地找到一个放代码的地方

git clone https://github.com/minning/gitskill2

其中minning是个人id,gitskill2是仓库名字,通过这一行命令就将远程的仓库clone到了本地

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

推荐阅读更多精彩内容

  • 文章来源: http://www.admin10000.com/document/5374.html 版权归属:涂...
    IT码哥阅读 261评论 0 0
  • 还是老规矩,这篇看完后,还是学不会git版本控制的,你来砍我 是兄弟就来砍我吧!!! Git是分布式版本控制系统,...
    Zteen阅读 3,044评论 0 6
  • 如何关联远程库? 1.新建本地库 2.通过git官网新建远程库 3.输入指令: git remote add or...
    诸子大人阅读 16,064评论 1 9
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,322评论 0 7
  • 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集...
    毛子阿卡西阅读 238评论 0 1