美文网首页
Git学习(2018-08-12)

Git学习(2018-08-12)

作者: Allenem | 来源:发表于2018-08-12 15:17 被阅读0次

    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 "you@example.com"
    $  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 "youremail@example.com"
    

    然后一路回车。这时你就会在用户下的.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)

          本文链接:https://www.haomeiwen.com/subject/anysbftx.html