GitHub安装使用教程

  由于重复率比较大,为了尊重他人的成果,先在此注明本文是在学习了以下博文之后的一些总结归纳,并且说明了一些本人实际使用GitHub遇到的问题,并给出了解决办法 。本人的操作系统是window10,所以只演示window系统下的GitHub安装使用教程。

萱草林夏

战争热诚

九师兄-梁川川
&mbsp;

1 GitHub概述

  GibHub的名字源于Git,Git是一个分布式版本控制系统,让程序员团队能够协作开发项目,Git帮助大家管理为项目所做的工作,避免一个人所做的修改影响其他人所做的修改。你在项目中实现一个新功能的时候,Git将跟踪你对每个文件所做的修改。确定代码可行后,你将提交所做的修改,而Git将记录项目最新的状态,如果你犯了错,想撤销所做的修改,可轻松的返回以前的任何可行状态。GitHub上的项目都存储在仓库中,后者包含与项目相关联的一切:代码,项目参与者的信息,问题和bug报告等


2 GitHub下载安装

GitHub下载链接

Git的安装步骤博文


3 GitHub使用教程

3.1 GitHub配置

  Git跟踪谁修改了项目,哪怕参与项目开发的只有一个人。为此,Git需要知道你的用户名和电子邮件。你必须提供用户名,但可以使用虚构的电子邮件地址:

$ git config --global  user.name "Username"
$ git config --global  user.email "[email protected]"

  注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
 

3.2 初始化仓库

  打开Git Bash命令行终端,跳转到你想进行Git管理的项目目录内,并通过git init命令把这个目录变成Git可以管理的仓库:

$ cd /F/Project/learnGit
$ git init
Initialized empty Git repository in F:/Project/learnGit/.git/

  瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。要是删除这个东西,则丢弃项目的所有记录。

  如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

3.3 检查状态

  在执行其他操作之前,先来看一下状态(项目目录内就一个main.c文件):

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        main.c

nothing added to commit but untracked files present (use "git add" to track)

  在Git中,分支是项目的一个版本,从这里的输出我们可以知道,我们位于分支master。

  我们每次查看项目的状态时候,输出的都是我们位于分支master上,接下里的输出表明,我们将进行初始项目的提交,提交是项目在特定时间的快照。

  Git指出了项目中未被跟踪的文件main.c,因为我们还没有告诉他要跟踪那些文件,接下里我们被告知没有任何东西添加到当前提交里面,但我们可能需要将为跟踪的文件加入仓库

3.4 将文件加入到仓库

  执行git add --all命令,将需要上传的全部内容放到缓存区,再“检查状态”:

$ git add --all

。。。。。 MINGW64 ~/learnGit (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   main.c

  命令 git add ,将项目中未被跟踪的文件都加入到缓存区,它不提交这些文件,而只是让git开始关注他们。然后检查这个项目的状态,发现git找到了需要提交的文件的一些修改,标签 new file 表示这些文件是新加入的。

  在这一步,在执行git add --all命令后,可能出现“警告warning”:

warning: LF will be replaced by CRLF in xx.c.

  由于Linux中的换行符是LF,而Windows中的换行符是CRLF,如果想用Windows下的git管理来自Linux的文本文件,git会默认将LF转换成CRLF,并发出烦人的warning。解决办法如下:

  使用cd命令进入目标仓库的最上层目录执行:

$ git config core.autocrlf false

  上述命令指示针对当前仓库的配置,如果想要对本地的所有git仓库都执行禁止自动转换的命令,可以执行git config –global core.autocrlf false命令,但是这样未免牵扯太大。


3.5 执行提交

  提交(commit)项目中已经被追踪的文件加入到仓库中:

$ git commit -m "Started project"
[master (root-commit) 5d6ceca] Started project
 1 file changed, 1 insertion(+)
 create mode 100644 main.c

  简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。“输出”表明我们在分支master 上,而且有一个文件被修改了


3.6 git push到远程分支

  commit之后,还要将commit的代码push到远程库,但是首先要添加远程库,执行以下命令:

$ git remote add origin "https://github.com/confidentFeng/learnGit.git"

  请千万注意,把上面的wangmingshun替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的。另外远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

  下一步,就可以把本地库的所有内容推送到远程库上,按照步骤会提示输入用户名和密码:

$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (20/20), 2.17 KiB | 0 bytes/s, done.
Total 20 (delta 6), reused 0 (delta 0)
To https://github.com/wangmingshun/studygit.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

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

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

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!


3.7 git push中遇到的问题以及解决方案

1.  fatal: The remote end hung up unexpectedly

在使用git推送项目时候出现 fatal: The remote end hung up unexpectedly,原因是推送的文件太大。

解决方案1:

可以在.git目录下面修改生成的config文件增加如下:

[http]  
postBuffer = 524288000

也可以使用命令设置缓存

$ git config http.postBuffer 524288000

解决方案2:

使用git更新或提交中途有时出现The remote end hung up unexpectedly的异常,特别是资源库在国外的情况下。此问题可能由网络原因引起。

配置git的最低速度和最低速度时间:

$ git config --global http.lowSpeedLimit 0
$ git config --global http.lowSpeedTime 999999  单位 秒

--global配置对当前用户生效,如果需要对所有用户生效,则用--system

解决方案3:

fatal: The remote end hung up unexpectedly | 7.00 KiB/s

这句显示 远程结束挂起 |7kb/s

应该是墙的原因导致网速太慢,且项目有点大上传不上

解决办法:“FQ” 或者等等重新再push一遍,就没问题了。

2. curl 56 OpenSSL SSL_read:SSL_ERROR_sysCALL

因为服务器的SSL证书没有经过第三方机构的签署,所以才报错。解决方案如下:
第一步,克隆远程仓库时,用env命令设置GIT_SSL_NO_VERIFY环境变量为”ture”。完整的命令如下:

$ env GIT_SSL_NO_VERIFY=true

第二步,在克隆完毕的仓库中将http.sslVerify设置为”false”。完整的命令如下:

$ git config http.sslVerify "false"

点评:以上方法应该是Git处理可信任的SSL临时证书很好的方法,第一步使用env命令保证了忽略证书错误是单次行为,不会成为默认的设置。第二次,则把忽略证书错误的设置限定在特定的仓库,避免扩大该设置的适用范围而引起的潜在安全风险。


4 总结

总结一下将项目上传到GitHub的简单步骤:

  1. 在GitHub上新建一个仓库地址: http://github.com/......git

  2. 在需要上传的文件夹目录下,运行git init初始化git;

  3. 运行git add命令,将需要上传的内容放到缓存区;

  4. 运行git commit -m "上传说明"将缓存区的的内容放入到仓库里面;

  5. 运行git remote add origin http://github.com/......git,将仓库与GitHub仓库联系起来;

  6. 运行git push origin master将文件提交到GitHub仓库里面,这样就完成了文件夹的提交。

猜你喜欢

转载自www.cnblogs.com/linuxAndMcu/p/10190240.html
今日推荐