GitHub 使用教程

git官网:https://git-scm.com/downloads

在git安装好之后,还需要做注册一个github账号,作为远程仓库,首先要在本地创建一个ssh key 这个的目的就是你现在需要在你电脑上获得一个密匙,就是咱们平时的验证码一样的东西,获取之后,在你的GitHub账号里边输入之后,你的电脑就和你的GitHub账号联系在一起了,这样以后就可以十分方便的通过Git bash 随时上传你的代码。下边介绍一下如果获得这个钥匙,又是如何输入到你的GitHub里边的呢在git bash中所有功能都是通过简单的一些代码来实现的。

获取密匙的时候需要输入$ ssh-keygen -t rsa -C "your_email@youremail.com"

需要输入这个代码,引号内需要改成你在注册GitHub的时候绑定的邮箱账号。之后会有一些简单的让你确认的操作,之后让你会提示操作路径、密码等等,一般情况下就直接按回车一路过就可以


如果之后你出现了这个界面之后,就说明你的密匙已经成功创建了。

cat ~/.ssh/id_rsa.pub 打印刚刚获取到的公钥,


复制公钥,现在你就需要登录到你的GitHub上边添加这个密匙,打开你GitHub的设置界面,找到SSH and GPG keys这个选项之后,在网页右上角有一个添加新的SSH keys 点击这里的title 是让你给你的密匙起一个名字,根据个人喜好,什么名字都可以,然后把你在刚刚文件中复制的密匙,填写在下边的大框里。保存即可。

ssh -T git@githun.com

然后输入上边的代码,来检查是否成功绑定。第一次绑定的时候输入上边的代码之后会提示是否continue,在输入yes后如果出现了:You've successfully authenticated, but GitHub does not provide shell access 。那就说明,已经成功连上了GitHub。

之后需要做一些配置:

这里一跳而过,不多说,完成之后,我们就可以使用git了。

git分区

工作区:就是我们打开文件夹所能看到的内容,比如windows系统盘下面的某个文件夹,就可以看

做是一个工作区。

缓存区:就是需要提交的那部分文件

版本库:就是已经提交,被纳入版本控制之列的文件

工作区有一个隐藏的目录.git,这个不算工作区,而是Git的版本库

git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支 master,以及指向 master的一个指针叫 HEAD 。

2. git的使用——基本操作

在本地创建文件夹,切换进入文件夹,开启git命令窗口,相关操作的命令如下:

(1)初始化git仓库  git init 

git add 文件名    #将工作区的文件添加到缓存区中

git commit -m “注释”  #将缓存区的文件内容提交到版本库中

(2)添加文件到仓库  git add 文件名

(3)提交代码到仓库  git commit -m '注释' 

(4)push代码到服务器   git push origin master 

(5)查看分支:git branch

(6)创建分支:git branch <分支名>

(7)切换分支:git checkout <分支名>

(8)创建+切换分支:git checkout -b <分支名>

(9)合并某分支到当前分支:git merge <分支名>

(10)删除分支:git branch -d <分支名>

(11)git log --graph命令可以看到分支合并图。

 (12)查看远程库信息,使用git remote -v;

(13)本地新建的分支如果不推送到远程,其他开发者是看不到的,从本地推送分支,使用git push origin 自己的分支名,如果推送失败,先用git pull抓取远程的新提交;

(14)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;(branch-name:本地分支名,也就是自己的分支)

(15)建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

(16)从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

(17)git clone 远程git地址  : 克隆一个远程项目

(18)git status 查看文件的状态,所谓文件状态的变化就是文件在工作区,缓存区,版本库之间不断的迁移

git status -u  查看状态

(19)git merge --no-ff -m '注释说明' 自己的分支名     将自己的分支代码合并到开发分支上

(20)让git显示颜色:git config --global color.ui true

(21)要关联一个远程库,使用命令 

        git remote add origin 远程仓库地址,比如:

git remote add origin https://github.com/JavaCodeMood/study_python_demo.git

关联后,使用命令 git push -u origin master第一次推送master分支的所有内容;

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

(22)查看远程服务器的相关信息:git remote -v

(23)git remote show origin(别名)  也可以查看远程服务器的相关信息

3.git的使用——快照

(1)git log   查看提交的日志

(2)gitk    以图形化的方式展现提交的日志

(3)git log -1   查看最近的一次提交

(4)git log -2   查看最近的两次提交

(5)git log --oneline  查看提交的日志,一行显示

(6)git log --oneline --graph 查看提交的日志

(7)git log -1 -p 查看最近的一次提交

(8)git reflog 显示你所使用过的每一条命令

(9)git log --graph --pretty=oneline --abbrev-commit  查看提交的日志信息

4.git的使用——版本回退

在 Git中,用HEAD表示当前版本,也就是最新的提交commit id(提交码),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

(1)从当前版本回退到上一个版本:git reset --hard HEAD^

(2)根据提交码进行回退:git reset --hard d302ae7  提交码取前面7位就够了

(3)git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区

5.git的使用——版本差异

(1)使用git diff 来比较工作区与缓存区之间的差异

(2)使用git diff --cached 来比较缓存区与版本库之间的差异

(3)使用git diff HEAD 来比较工作区与版本库之间的差异

(4)git diff 文件名   #查看某个文件在工作区与缓存区之间的差异

(5)git diff HEAD -- filename命令可以查看工作区和版本库里面最新版本的区别

(6)git diff 远程开发分支名 自己的分支名:查看自己的分支与远程开发分支有什么不同

(7)git diff origin/develop  develop  查看开发分支有什么不同(develop:开发分支名)

6. git的使用——历史版本

(1)使用git checkout 从缓存区中取出文件;也可以使用git checkout取出缓存区的状态

(2)使用git checkout HEAD 来取出版本库中的状态,它会做两步操作:

第一步:使用版本库中的文件来覆盖缓存区

地二步:使用版本库中的文件来覆盖工作区

(3)git checkout -- .   取出当前目录下的所有历史版本

(4)git checkout HEAD 文件名   从版本库中取出某个文件

(5)git checkout -- 文件名 丢弃工作区的修改,意思就是,把 该文件在工作区的修改全部撤销,即让这个文件回到最近一次 git commit或 git add时的状态。

7.git的使用——分支

(1)master:主分支

dev:开发分支,创建开发分支是为了保证master分支的稳定性

bug:解决bug的分支

注意:dev,bug是我自己定义的分支名,你请随意

(2)git branch dev  #创建开发分支

(3)git branch  #查看分支

(4)git branch -a  #查看所有分支

(5)git branch -v  #查看分支,并带有提交码

(6)git branch -d 分支名   #删除分支

(6)git checkout dev   #切换到dev分支

(7)git checkout master  #切换到master分支

(8)git checkout -b bug   #创建bug分支,并切换到bug分支

将dug分支合并到master分支:

首先要切换到master分支:git checkout master

然后进行合并:git merge bug

然后查看日志:git log --oneline

合并完成之后,需要删除bug分支:git branch -d bug   #删除bug分支

然后在查看分支:git checkout -v

再切换到dev分支进行开发:git checkout dev

开发完成之后,提交代码:git add 文件名    #将工作区的代码添加到缓存区

                        git commit -m “注释”  #将缓存区的代码提交到版本库

切换回master分支合并dev代码:git checkout master

合并dev代码:git merge dev

在查看日志:git log --oneline

命令作用域常用情景

git reset提交层面在私有分支上舍弃一些没有提交的更改

git reset文件层面将文件从缓存区中移除

git checkout提交层面切换分支或查看旧版本

git checkout文件层面舍弃工作目录中的更改

git revert提交层面在公共分支上回滚更改

git revert文件层面(然而并没有) 

8.git的使用——tag标签

(1)git tag v1.0    打标签 

(2)git  tag   查看所有标签 

(3)git show <tagname>可以查看某个标签的详细信息

(4)git tag  用于新建一个标签,默认为HEAD,也可以指定一个commit id

(5)git tag -d <tagname>可以删除一个本地标签;

(6)注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。 

(7)如果要推送某个标签到远程,使用命令git push origin <tagname>:

(8)一次性推送全部尚未推送到远程的本地标签:git push origin --tags 

(9)如果标签已经推送到远程,现在需要删除远程标签,首先从本地删除:

git tag -d <tagname>

 然后,从远程删除。删除命令也是push,但是格式如下:

git push origin :refs/tags/<tagname>

9.git的使用——删除文件

(1)使用git删除某个某个文件,之后还需要进行提交,否则删除不会成功:

git rm 要删除的文件名

git commit -m "del 删除文件"

(2)误把文件删除,可以通过版本库恢复回来:git checkout -- 误删除的文件

10.git的使用——设置别名

(1)git config --global alias.st status   设置status的别名为st,git st 等价于 git status,下同

(2)git config --global alias.co checkout

(3)git config --global alias.ci commit

(4)git config --global alias.br branch

--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

11.git的使用——将dev分支上的某个未完成的工作暂存起来

首先要切换到dev分支上:git checkout dev

修改某个文件后,将它暂存起来:git stash  / git stash save

查看状态:git status  可以看到这个工作会变得很干净

查看存储了哪些暂存工作:git stash list

恢复暂存起来的工作:git stash apply

再查看状态,你就会看到之前暂存起来的工作了。

清除暂存起来的工作:git stash clear

12.git的使用——设置忽略文件

(1)配置全局忽略的文件,这样就不用每个项目都加gitignore了:

git config --global core.excludesfile '~/.gitignore' 

(2)创建.gitignore文件,用来忽略某些文件

(3)echo “文件名” >> .gitignore   将需要忽略的文件添加到忽略文件中

(4)cat .gitignore  查看忽略文件

(5)echo “目录/” >> .gitignore  忽略一个文件

(6)echo "*.txt" >> .gitignore  忽略以.txt结尾的所有文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容