Github应该这样入门

109 篇文章 0 订阅
48 篇文章 4 订阅

清楚我要学什么

之前有过打算学习一下Github,但是仅仅是创建好帐号之后就继续不下去了,一方面是没有编程方面的基础,头脑中没有指令的概念,还有就是没有一个合适的学习方法,只是在跟着教程敲git,但是不知道这些指令的用途,以及自己能用这些指令做什么。在最近的学习中,我逐渐形成了一个学习套路,就是在学习一个新知识之前,先了解一下这个知识体系的架构,形成一个知识脉络,然后清楚自己想在这方面学习哪方面的知识。
思维导图
当然,这个思维导图是我学习完成之后才构建的,并非是我在学习之前就想好的,只是在学习中清楚自己需要哪方面的知识,有一个大体的脉络,然后不断的百度百度。


帐号注册

https://github.com/join
登录

建立仓库

创建仓库

安装就不说了,链接到远程仓库

安装完成之后,新建一个文件夹,鼠标右键,会出现一个 Git Bash Here点击就可以进行命令操作了

     ssh-keygen -t rsa -C "email address"

一路回车就会生成一个id_rsa.pub

    cat ~/.ssh/id_rsa.pub

复制到Github

点击头像 ->setting ->SSH and GPG keys ->new SSH key

SSH
验证一下

ssh -T git@github.com

验证
设置username和email

git config --global user.name "name"//Github 的名字
git config --global user.email "Email address"//留的邮箱地址

设置、clone仓库


Update 这里应该先在本地初始化再clone的
$ git init
$ git remote add origin https://github.com/logicr/JAVA-study.git
$ git push -u origin master

    git remote add origin git@github.com/logicr/test
    git clone https://github.com/logicr/test

clone

这样本地就clone了Github上刚刚新建的仓库

提交修改

vim show.md//创建一个md文件叫Show,也可以在本地仓库用记事本写一个
"我叫Jan,正在学习Github"

show
上传

git add "show.md"
git commit -m "this is a show file"
git push origin master

code
先看看我的仓库没有提交之前的样子
kankan
提交之后,与之前相比,里面多了一个show.md,打开之后,就可以看到我的之前写的自我介绍。
提交之后

到此,终于算是小有所成能够将本地修改提交到远程仓库里,但是,这只是Github的基本功能。但是在使用中有一些其他需求,比如,我把刚刚刚的show.md删除

删除文件

git rm -r --cached "show.md"
git commit -m "delete show"
git push origin master

delete
再来看看的仓库,看看的show.md,已经被删掉。
gone
不过,Github怎么可能让你轻易删掉文件

版本回退

如果是删除文件
查看日志

git log 

recovery
这里的语句I delete show,表示这是我刚刚的删除操所,这时候才显示出 git commit -m "txt"里面文本的重要性,要不然过几天之后,一堆没有说明的日志文件根本无从查找。复制commit 后面的ID

git reset --hard ID//如果仅仅上前一次的操作可以不用ID,git reset --hard HEAD^

那么现在再将文件提交即可。
如果是会退到之前版本,步骤都一样,先修改一次,在hide.md后面添加一句“我现在修改一次,提交到Github”
change

git reset --hard ID//如果仅仅上前一次的操作可以不用ID,git reset --hard HEAD^

再push一次

git push origin master

error
不过会报错,因为文件的add和commit还是之前的,但是不用再次add和commit那么麻烦

git push origin master --force

success
内容就已经成功回退到上一次的状态。
终于把这些基本操作有所了解,之后再学习一下分支,标签。
在这次学习中参考了资料:菜鸟教程-github简明教程廖雪峰的官方网站github教程以及大量网友热心回复等,不再一一列举,这些资料对我的学习带来了巨大帮助,在此感谢。

  • 增量更新[3.25]

分支branch

远程删除分支

git push origin :new-branch //$git push [你的远程仓库在本地的别名][空格][冒号][你的分支名字]

本地创建分支

git checkout -b branch-name//
git branch branch-name //创建分支 
git cheackout branch-name//切换分支
git merge master //合并
git branch -d branch-name//删除分支

gitHub远程分支创建

//在本地master上分出一个项目分支

git checkout -b new-branch

//git checkout -b new-branchorigin/master //在远程添加分支,尝试添加,失败。

$git push origin :new-branch//删除远程分支

git push origin new-branch:new-branch   //本地修改推送到远程分支
  • 增量更新[3.26]

文件恢复(不是滚回)

在今天的练习代码中,不小心将master中的一个代码实例给覆盖了(等同于删除!!!),首先想到的当然是git reset --hard ........,不过很不幸,提示文件错误
wrong
当然还有一个方法,因为我之前已经同步过了,可以git clone不过,这个我就当作最后的手段吧,能不用就不用,毕竟为了恢复一个文件而去撬动整个仓库还是很大费周章的。不能clone仓库的话,问题就来了,百度之后开始各种骚操作,然和并无什么行之有效的方法,倒是强行学习了一波指令

git pull//远程同步到本地
git fetch origin master:new//获取远程master分支后作为本地new分支

最后在一个犄角旮旯找到一篇帖子,问题更我的简直一模一样,连覆盖的文件都是.java,–>原帖地址
为了复现我遇到的问题,我创建一个文件:

    $ vim 猫.cat
    $ i am cat
    $ git add "猫.cat"
    $ git commit -m "add a cat"
    $ git push origin master

mao

删掉它

$ rm 猫.cat//图示的 $ rm 猫* 这种方法不值得提倡,我要改掉
$ git status //看一看
$ ls //还是不放心,再看看

lost

恢复它

$ git checkout                    //查看被删的文件
D       "day3-26/\347\214\253.cat"

$ git checkout 253.cat            //说的是这个那我就试试吧
error: pathspec '253.cat' did not match any file(s) known to git.//......

$ git checkout 猫.cat
error: unable to stat just-written file day3-26/猫.cat: No such file or directory     
                                  //没有???
$ ls                              //明明就回来了,真是皮。

comeback

不知不觉又学会了一招,在问题中新学习知识真是一种很有效的方法,不仅解决了自己的问题,还能学习知识,不过不好的一点是往往也随之带来了血与泪的代价,这一次用事实就告诉了我不要再master里瞎搞,也就是说建立分支branch的作用也就凸显出来了,不过昨天才学branch,今天没想起来建立一个branch,不过学习就是这样,你学了不用,自然有错误来提醒你去用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值