初次运行Git前需要先对Git的工作环境进行配置(如果之前已经设置过那么就不需要再设置一次),采用的工具是git config。主要设置用户信息即可,包括用户名和邮箱

$ git config --global user.name "用户名"

$ git config --global user.email 自己的邮箱

设置结束后可以通过以下指令查看配置信息

$ git config --list

2. Git本地仓库与Github远程仓库之间的传输主要是通过SSH方式加密传输,所以之前没有设置过需要创建SSH Key。创建方式如下

$ ssh-keygen -t rsa -C "自己的邮箱"

运行过程中会出现让你设置密码等要求,直接按回车,使用默认值即可


3. 如果上述指令运行成功,那么会在主目录(home)下生成一个.ssh的隐藏文件夹,按ctrl+h可以显示。点击进入后可以找到两个文件,分别为:id_rsa和id_rsa.pub。这两个文件对应了私密密钥和公开密钥,接下来就是要将公开密钥文件(即id_rsa.pub文件)中的代码复制到github中的“SSH Key”下面,具体过程如下。

(1)进入https://github.com/,选择settings选项,如下


(2)进入settings界面后点击选择SSH and GPG keys选项,再点击选择“new SSH key”添加新的SSH Key。需要注意是SSH Key可以添加多个,即不同的PC生成的SSH Key都可以添加。


(3)将.ssh文件夹下的id_rsa.pub文件中的内容复制到github中,点击Add SSH Key按钮即可生成,如下


4. 验证本地仓库与Github之间传输是否成功

$ ssh -T git@github.com

如果看到如下信息,表示成功连上github






本地仓库项目push到Github远程仓库

1.首先在本地新建一个仓库(repository)。一般都是push那个工程,就在那个工程目录下新建仓库,指令如下:

$ cd xxx(进入工程目录下)

$ git init
在新的仓库初始化后,工程当前目录下会出现一个名为 .git 的目录,该目录会记录和存放所有 Git 需要的数据和资源。


2. 不过目前为止,新建的仓库还是一个空的仓库,所以需要讲文件添加到仓库里面。需要注意的是只有仓库所在目录或者其子目录下的文件可添加至仓库中,其他目录下的文件Git无法找到。具体的实现是用git add指令将需要提交至仓库的文件从工作区添加到暂存区,告诉Git那些文件需要追踪。

$ git add .
上述指令是对该目录及其子目录所有文件进行追踪,也可以选择只跟踪单个文件或者子目录

$ git add 文件名(或子目录)
运行git status 指令可看到文件被跟踪处于暂存状态


3.Git将文件放入仓库的过程中会先将文件放到暂存区域中,再执行提交的操作。所以要确认还有什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。建议每次准备提交前,先用 git status 看下要提交至本地仓库的文件有没有暂存起来。将暂存区的文件提交至本地文件的命令如下:

$ git commit -m "first commit"

4. 我们的目的是在Ubuntu本地创建一个Git仓库后,将该仓库的文件同步到GitHub的远程仓库员中,所以需要登录GitHub创建一个远程仓库,具体如下

(1) 点击GitHub首页的“+”,选择New repository


(2)在跳出来的页面中设置远程仓库名字并点击生成远程仓库



5. GitHub上建立远程仓库后在将本地仓库中的文件push到该远程仓库之前需要关联本地仓库和远程仓库,指令如下

$ git remote add origin git@github.com:yourName/yourRepo.git
上述指令运行后,origin即为远程仓库的名字,而yourName是Github的账号,而yourRepo是在Github上面给新建的远程仓库取的名字。


6.将本地仓库的文件push到远程仓库中,指令如下:

$ git push -u origin master
这里要注意的是第一次推送master分支(Git的默认分支,其他分支操作这边不做介绍)时最好加上-u。因为该参数会把本地的master分支和远程的master分支关联起来,之后该本地仓库与远程仓库之间的推送或者拉取就可以简化为

$ git push
$ git pull

Ubuntu终端下push成功的结果


push后Github的远程仓库成功添加本地仓库的文件



参考资料

1. https://git-scm.com/book/en/v2

2. https://www.liaoxuefeng.com/