Git学习(2018-08-12)

Git创建local repository和remote repository

参考:
①Git的使用--如何将本地项目上传到Github
②Git教程 - 廖雪峰的官方网站

这篇文章主要讲Git本地仓库的创建及上传到GitHub的步骤
Git的安装就不说了,直接上干货。

1、创建一个本地的版本库(其实也就是一个文件夹)。
可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。
通过命令行在桌面新建一个TEST文件夹(你也可以在其他任何地方创建这个文件夹),并且进入这个文件夹

new folder

icon

2、通过git init把它变成Git仓库;

$ git init
$ git init

可以通过git status查看状态

$ git status
$ git status I

3、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;

git add .
$ git add .

此时没有消息就是好消息,可以通过git status查看状态

$ git status II

4、告诉git你是谁

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

5、再通过git commit -m "注释内容"把项目提交到仓库;

$ git commit -m "first commit"
git commit -m "注释"

6、创建SSH KEY。先看一下C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到GitHub设置,没有就通过下面命令创建

$ ssh-keygen -t rsa -C "[email protected]"

然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件。

登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。

7、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/Allenem/2048game.git将本地仓库和远程仓库进行关联;

$ git remote add origin https://github.com/Allenem/2048game.git
remote repository

8、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上(若新建远程仓库的时候自动创建了README文件会报错,解决办法如下)。该步骤会要求输入name或email和登录密码登录来上传。

$ git push -u origin master
push

由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:

$ git push origin master

这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了:


github push successfully

注意:
①创建远程仓库的时候,如果你勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了将本地仓库内容推送到远程仓库的时候就会报一个error:failed to push some refs to https://github.com/Allenem/2048game.git的错。

error.png

这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并以下:

$ git pull --rebase origin master

这时你再push就能成功了
②若前面没提交仓库$ git commit -m "first commit"也会报错,完成该步骤即可。

git 提交环节的三大部分

在git提交环节,存在三大部分:working tree, index file, commit(工作区,暂存区,远程仓库)

这三大部分中:

  1. working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
  2. index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。
  3. commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。

总结一下:

  1. git diff:是查看working tree与index file的差别的。
  2. git diff --cached:是查看index file与commit的差别的。
  3. git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

eg:
本地README.md新增


## first change

git操作与显示如下:

  1. add前:
$ git diff
diff --git a/README.md b/README.md
index 83c831f..b87bcfb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # test
+
+## first change
$ git diff --cached

$ git diff HEAD
diff --git a/README.md b/README.md
index 83c831f..b87bcfb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # test
+
+## first change
  1. add后,commit前
$ git add .
$ git diff

$ git diff --cached
diff --git a/README.md b/README.md
index 83c831f..b87bcfb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # test
+
+## first change
$ git diff HEAD
diff --git a/README.md b/README.md
index 83c831f..b87bcfb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
 # test
+
+## first change
  1. commit后
$ git commit -m 'first change'
[master 89c28ca] first change
 1 file changed, 2 insertions(+)
$ git diff

$ git diff --cached

$ git diff HEAD

你可能感兴趣的:(Git学习(2018-08-12))