GitHub 安装、卸载、ssh、克隆、上传

GitHub

20181019

14:19

GitHub简介

GitHub有一个很强大的功能就是,你在服务器上边可以创建一个库(稍后会介绍怎么创建),写代码是一件很重的任务,尤其是很多人完成一个很大的项目的时候,就十分的复杂,一群人一起来写某个项目,大家完成的时间,完成的进度都是不相同的,你写一点我写一点,甚至可能你今天写的出现了错误,影响到了我昨天写的代码,最后怎么才能将大家的代码轻松的汇总起来,又怎么在汇总所有人的代码之后发现错误等等一系列问题。这样我们就用到了GitHub这个软件。我们在GitHub服务器上有一个主仓库,这里用来储存你的所有代码,如果不付费的话是所有人都可以看的,如果你不想让别人看到你的代码,可以选择付费仓库。我们创建了主仓库之后,就可以在电脑上创建分支,之后你就可以在电脑上完成自己的代码,写完之后直接同步在电脑的分支,当你认为可以上传的自己的主仓库时,就可以申请更新,当通过审核的时候,你代码就出现在了自己的主仓库中,这样全世界的程序员都可以查看你的代码。全世界现在已经有300万的注册用户,甚至还有一些相当知名的开源项目也在其中公布代码。在GitHub上你可以看到很多计算机领域的精英所分享的自己的代码。这是GitHub的两个主要优点,适合团队协作,以及下载其他优秀者的代码。

参考:https://blog.youkuaiyun.com/Hanani_Jia/article/details/77950594

https://blog.youkuaiyun.com/wangrenbao123/article/details/55511461/

 

Git是目前世界上最先进的分布式版本控制系统。

git的工作原理图:

workspace:工作区

index/staged:暂存区

repository:本地仓库

remote:远程仓库

workspace首先是addindex,让后commitrepository,pushremote.

之前安装了GitHub(windows版)一直没有用上,右键git bash here 不见了,重新安装学习一下吧

 

谷歌浏览器Tampermonkey可以安装GitHub汉化工具(https://github.com/52cik/github-hans

先登录GitHub(https://github.com/)注册账号

 

    • 卸载
      • 程序卸载删除
    • 安装
      • 下载GitHubwindows)安装:https://git-scm.com/  (改改路径默认安装就好了)https://blog.youkuaiyun.com/sishen47k/article/details/8021100 每步安装说明
        • Git bash  命令窗口,基于cmd命令
        • Git GUI   git图形界面
        • Git CMD   cmd命令窗口
    • ssh key
      • 创建ssh key 密钥与GitHub账号绑定
        • 打开git bash用户@电脑型号

    • 获取属于你自己的密匙

 

公钥是CODE识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与CODE建立联系,然后您就可以很方便的将本地代码上传到CODE,或者将CODE代码下载到本地了。

 

    • $ cd ~/.ssh                               检查本机公钥

如果提示:No such file or directory 说明你是第一次使用git

如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。

    • $ mkdir key_backup                        清理ssh密钥

$ cp id_rsa* key_backup

$ rm id_rsa*

    • 生成新密钥

$ ssh-keygen -t rsa -C “您的邮箱地址”  

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

这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。

您可以在你本机系统盘下,您的用户文件夹里发现一个.ssh文件,其中的id_rsa.pub文件里储存的即为刚刚生成的ssh密钥。

    • 添加公钥

 登录CODE平台,进入用户账户设置,点击右侧栏的ssh公钥管理,点击添加公钥,将刚刚生成的公钥填写到公钥栏,并为它起一个名称,保存即可。

注意:复制公钥时不要复制多余的空格,否则可能添加不成功。

    • 检查是否添加成功

$ ssh -T git@github.com

 

报错处理(https://blog.youkuaiyun.com/sunnypotter/article/details/18948053/)

    • 出错,前面取名默认,已用红叉标记(不要输入),默认名id_rsa
    • $ ssh -T git@github.com git@github.com: Permission denied (publickey).
      • 利用 -v debug

$ ssh -T -v git@github.com

可以看到一直在找id_rsa

标记目录下看果然没有id_rsa文件,看了下生成在标记目录/key_backup目录下

将文件移入

    • 简单配置
      • $ git config --global user.name "id_rsa"
      • $ git config --global user.email "1039048406@qq.com"

name最好和GitHub上边的一样,email是一定要是注册GitHub的那个邮箱地址

 

    • 克隆
      • github创建一个仓库:记住网站

 

本地创建一个目录存放仓库:G:\GitHubRepository

先进入自定义目录

克隆

$ git clone https://github.com/mayl0415/mayl.git

可以看到目录多了一个仓库

测试

mayl 下新建一个文件

查看$ ls 查看该目录下文件

上传

 $ git add test.txt

备注

$ git commit -m "cc"  引号内的内容可以随意改动,这个语句的意思是 给你刚刚上传的文件一个备注,方便查找记忆而已

 

github上传

$ git push origin master

 

 

登录失败

输入账号重新登录:表示登录成功

 

github查看

看到上传成功

git的运行逻辑:3步

1.创建git仓库.

创建仓库分为2:

<1>本地是没有库的,从服务器pull库到本地来.

<2>本地有库,上传库到服务器中.

2.提交本地代码

<1>git add .  是添加所有当前目录的所有文件

<2>git commit -m "这里是添加注释" :和服务器的代码合并

3.拉取远程代码             git pull

   合并有冲突的代码    conflict:merger

修改了服务器原来的代码替换成你的代码,这些代码有冲突,是选择你的还是选择原来的,有冲突的时候,会自动修改你写的代码,并保留服务器原来的代码,如果你是要修改服务器的,只要删除自动添加的,再进行2<2>执行下一步步骤就行)

    提交代码                     git push

GitHub与svn的区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

分支的作用

你的项目进行中遇到了一个问题,解决方案不确定,但是你不希望因此影响到当前的开发,那么你可以为此创建分支,然后在分支上测试你的方案,如果可行那么可以通过合并分支功能将你的更新应用到主干,反之你可以放弃它。

  两种方式clone服务器上的代码库:

 

1)https方式,通过填写账号和密码就可以clone代码库

 

 

2)ssh公钥和私钥方式,先在本地制作公钥和私钥.

 

解释:ssh-keygen -t rsa是直接制作公钥和私钥 -t是填写加密的标准rsa 按下三层Enter的键可以看见公钥和私钥放在哪里了.(一般在C:\Users\Administrator\.ssh的文件夹中公钥.pub后缀)

cmd例子: git clone https://xxx.xxx

cmd:ssh-keygen -t rsa或者是ssh-key -t rsa -C "可以填任何东西文字一般写邮箱,这段文字就在公钥私钥中文本的最后面"

 

 

然后在服务器中生成公钥,生成之后,在本地cmd:git clone git@gitxx.x网址x.git就搞定clone代码库了

git常用命令

  • git status -s: 查询repo的状态,-s表示short,输出标记有两列,第一列是对staging区域,第二列是working目录
  • git log >>显示每条分支的合并历史
  • --oneline --graph:可以图形化表示分支合并历史
  • --author=[author name]指定作者提交历史
  • git add . :帝国添加当前工作目录中的所有文件
  • git commit:提交已经被add进来的改动

 

git的分支操作命令:

  • git branch -b name:创建分支
  • git branch:查看当前目录的分支
  • git branch -d name:删除分支
  • git push origin:name 删除远程分支
  • git checkout name:切换分支
  • git checkout --file撤销修改
  • git rm file :删除文件
  • git log --graph :分支情况图

 

git新建本地分支与远程分支关联问题

 

  • 1)git在本地新建分支,push到远程服务器上之后,再次pull下来的时候,如果不做出来会报提示要求要up-to-data

所以,git本地新建一个分支后,必须要做远程分支关联.

 

  • 例子

本地新建分支:git branch -b new_branch

将本地分支和远程服务器关联:git branch --set-upstream-to=origin/master new_branch(将本地新建的分支new_branch分到服务器的origin/master的分支下)

跟踪远程的分支

git branch --set-upstream-to=origin/分支名 分支名

很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地。然而,为什么绝大多数人会使用https url克隆呢?

这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了。而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key 。

因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。

 

https 和 SSH 的区别:

1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。

2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值