初步学习使用msysgit基本操作以及上传项目到GitHub

创建git项目

首先,我们在E:/test/目录下面创建了一个叫做hello.txt的文本文档内容如下:

初步学习使用msysgit基本操作以及上传项目到GitHub_第1张图片

然后,建立git项目,在test目录下右键”git bash here”,在弹出的msysgit命令行里输入

$ git init

这里的git init命令就是初始化我们的git仓库,默认的分支是master

Chation@Chation-PC MINGW64 /e/test
$ git init
Initialized empty Git repository in E:/test/.git/

Chation@Chation-PC MINGW64 /e/test (master)
$

然后使用git status命令查看仓库的状态 :

$ git status

结果我们看到显示有一个未添加的文件,并提示可以使用”git add”命令添加

Chation@Chation-PC MINGW64 /e/test (master)
$ git status
On branch master

Initial commit

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

        hello.txt

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

Chation@Chation-PC MINGW64 /e/test (master)
$

好,我们试一下使用git add 来把它添加到我们的仓库

$ git add .

这里我们使用的是git add . 就是把全部未添加的文件,添加到git仓库里面,命令输入之后并没有什么反应,那我们再使用git status看看有什么变化…

Chation@Chation-PC MINGW64 /e/test (master)
$ git status
On branch master

Initial commit

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

        new file:   hello.txt


Chation@Chation-PC MINGW64 /e/test (master)
$

这里提示我们有一个新文件已经被添加进git仓库了!

然后我们给这个添加文件的过程创建一个commit,用来标识修改信息使用git commit -m “your information”

Chation@Chation-PC MINGW64 /e/test (master)
$ git commit -m "add new file"
[master (root-commit) 95ff8fa] add new file
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

文件的修改

我们对txt文件进行一些修改:

初步学习使用msysgit基本操作以及上传项目到GitHub_第2张图片

继续,我们输入git status看看又有了什么变化:

$ git status

初步学习使用msysgit基本操作以及上传项目到GitHub_第3张图片

这里提示hello.txt已经被修改了,然后我们继续使用git add把这个改动添加进去…

$ git add .

初步学习使用msysgit基本操作以及上传项目到GitHub_第4张图片

我们发现刚刚红色的modified已经变成绿色,证明已经更新成修改后的文件了

继续,添加修改的标识信息git commit -m “add some info”

Chation@Chation-PC MINGW64 /e/test (master)
$ git commit -m "add some info"
[master 929e579] add some info
 1 file changed, 2 insertions(+), 1 deletion(-)

接下来,我们使用git log命令来查看一下这两次的commit信息:

$ git log

初步学习使用msysgit基本操作以及上传项目到GitHub_第5张图片

现在已经有两个提交的更改了

版本退回

如果我们在一次修改后发现已经删除掉了上一次删除过的内容,发现那些删除的内容正是我们所需要的该怎么办呢,这个时候我们就需要用到版本退回的功能

上一个git log图片中黄色的字段是一串哈希码,我们叫他版本号就行了

开始回退,执行命令git reset –hard 95ff8fa (取版本号前7位):

Chation@Chation-PC MINGW64 /e/test (master)
$ git reset --hard 95ff8fa
HEAD is now at 95ff8fa add new file

提示:HEAD is now at 95ff8fa add new file , 证明我们的版本已经退回到刚才add new file的那一步了,我们来看看txt文档有什么变化:

初步学习使用msysgit基本操作以及上传项目到GitHub_第6张图片

发现刚刚添加的”add some info ~!”已经不见了,现在是我们最开始创建txt文档时候的样子

我们再执行git log,发现刚才的另一个版本不见了

Chation@Chation-PC MINGW64 /e/test (master)
$ git log
commit 95ff8fa555fe03af8732508190ee974a4f74d76a
Author: chation .com>
Date:   Fri Dec 16 14:45:06 2016 +0800

    add new file

那我们如何再回到新的版本呢,我们可以先执行git reflog看看:

Chation@Chation-PC MINGW64 /e/test (master)
$ git reflog
95ff8fa HEAD@{0}: reset: moving to 95ff8fa
929e579 HEAD@{1}: commit: add some info
95ff8fa HEAD@{2}: commit (initial): add new file

我们发现这里有三条记录,最新的一条也就是索引[0]是我们刚才退回版本的记录,我们要回到”add some info”这个版本的话继续使用这个命令”git reset –hard 版本号”

Chation@Chation-PC MINGW64 /e/test (master)
$ git reset --hard 929e579
HEAD is now at 929e579 add some info

再来看一下txt文档的内容:

初步学习使用msysgit基本操作以及上传项目到GitHub_第7张图片

又回来了~!

本地Git与GitHub关联

1.首先创建一个github帐号

2.本地配置用户名和邮箱,可以使用命令

$ git config --global user.name "user name"
$ git config --global user.email "your email"

也可以在本地文件config中修改,路径在C:\Users\用户名.gitconfig

初步学习使用msysgit基本操作以及上传项目到GitHub_第8张图片

3.生成ssh key

运行ssh-keygen -t rsa -C “[email protected]” ,会有三次等待你输入,直接回车就好了

然后在刚才的路径里找到.ssh\id_rsa.pub用文本编辑器打开,把里面的全部内容复制下来

初步学习使用msysgit基本操作以及上传项目到GitHub_第9张图片

4.进入到我们的github账户的setting

初步学习使用msysgit基本操作以及上传项目到GitHub_第10张图片

5.测试一下是否能连接成功

使用这个命令

$ ssh -T git@github.com

ssh test

显示上面的信息就表示成功了~!

创建github仓库并与本地关联

1.新建一个github项目

初步学习使用msysgit基本操作以及上传项目到GitHub_第11张图片

然后点击Create repository按钮就完成创建啦~!

2.将本地仓库上传到github

初步学习使用msysgit基本操作以及上传项目到GitHub_第12张图片

这里提供了两种上传方式https和ssh,由于ssh的上传速度较https快,一般都会优先使用ssh

使用”git remote add origin 复制的地址”命令,添加ssh地址

Chation@Chation-PC MINGW64 /e/test (master)
$ git remote add origin git@github.com:chation/testgit.git

然后执行

git push --set-upstream origin master

将本地仓库上传至Github的仓库并进行关联:

Chation@Chation-PC MINGW64 /e/test (master)
$ git push --set-upstream origin master
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 467 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To github.com:chation/testgit.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

至此,我们就已经完成了本地仓库与github的关联~!

最后,我们试一下把本地的改动推送到github,我们再次给txt文件添加一些内容:

初步学习使用msysgit基本操作以及上传项目到GitHub_第13张图片

修改过程不在赘述

Chation@Chation-PC MINGW64 /e/test (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

Chation@Chation-PC MINGW64 /e/test (master)
$ git add .

Chation@Chation-PC MINGW64 /e/test (master)
$ git commit -m "update"
[master 4500ab2] update
 1 file changed, 3 insertions(+), 1 deletion(-)

Chation@Chation-PC MINGW64 /e/test (master)
$ git log
commit 4500ab2bb1681b918e7413a4beec37b34ade2dc4
Author: chation 
Date:   Fri Dec 16 16:09:40 2016 +0800

    update

commit 929e579716bddb3403c9b426b2069ec8485397e6
Author: chation 
Date:   Fri Dec 16 15:08:01 2016 +0800

    add some info

commit 95ff8fa555fe03af8732508190ee974a4f74d76a
Author: chation 
Date:   Fri Dec 16 14:45:06 2016 +0800

    add new file

然后,我们使用git push命令将改动推送到github

Chation@Chation-PC MINGW64 /e/test (master)
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:chation/testgit.git
   929e579..4500ab2  master -> master

我们看一下在github上面是否有了改动:

初步学习使用msysgit基本操作以及上传项目到GitHub_第14张图片

我们看到已经成功了~!

好了,以上就是我初步学习使用msysgit的基本操作和上传项目到github的一些步骤

补充

1.关于网上的一些上传方法比如使用

$ git push -u origin master

这条命令,不知为什么在我这里上传不了,在计算文件完成后就一直卡住,传不上去,我使用了系统提示的

git push --set-upstream origin master

就成功了

2.有些情况使用git push –set-upstream origin master上传不了的,是因为在创建项目的过程中勾选了README或者LISENSE,这种情况下要先把本地的项目与github上的内容合并,使用

$ git pull --rebase origin master

代码合并(注:pull=fetch+merge),在继续上传就可以了

你可能感兴趣的:(学习笔记)