Git学习笔记(一):Git的命令

1、Git的安装:

         (1)msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。

         (2)安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

         (3)安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"//用户名
$ git config --global user.email "email@example.com"//用户邮箱
           用户名和邮箱是提交到Github时要用的,因为Git时分布式版本控制系统,所以得知道都是谁修改了程序;

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

2、创建版本库:

           (1)随便创建一个目录,不要带中文(防止出现问题);

           (2)通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in g:/Git_test/7.1/.git/

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

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

3、添加文件:

            (1)在目录下新建一个readme.txt,用notepad++打开,编码格式为utf-8无BOM格式,内容如下:       

this is first test;
             (2)用命令 git add告诉Git,把文件添加到缓存:

$ git add readme.txt
             (3)用命令 git commit告诉Git,把文件提交到仓库(目前这些操作都是本地,不涉及上传到Github):
$ git commit -m "wrote a readme file"
[master (root-commit) c07390b] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt
-m 是添加描述,后面的是描述信息,就是每次修改的大概内容描述

4、修改文件:

               (1)直接修改readme.txt,将内容修改为this is second test,然后通过git status查看结果:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
               (2)通过git diff  readme.txt查看具体修改的内容
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index d8036c1..7950452 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1 @@
-this is first test
\ No newline at end of file
+this is second test
\ No newline at end of file
               (3)将文件添加到缓存,git add readme.txt

                (4)将文件提交到仓库,git commit -m "second change"

5、版本回退:

              (1)通过git log查看修改记录

$ git log
commit b0d47d7ad6b14b3ae26340b5c47de4eba1752435
Author: Jalon2015 <1121263265@qq.com>
Date:   Wed Jul 1 15:48:29 2015 +0800

    second change
 
commit a69d113890318bef3cf771eb9d73ad08ac147d65
Author: Jalon2015 <1121263265@qq.com>
Date:   Wed Jul 1 15:46:16 2015 +0800

    wrote a readme file
           (2)通过git reset --hard ID进行回退:

                           ID可以是commit后面的那串数字的前几位,也可以是HEAD、HEAD^或HEAD~100等等

$ git reset --hard b0d47d
HEAD is now at b0d47d7 changed second
6、工作区和缓存区的概念:

            如图1:是git add file后的状态

                (1)左边是工作区,就是我们新建的目录;

                (2)stage是缓存区,git add file 就是把文件放到这个stage;

                (3)我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改;你可以简单理解为,需要提交的文件

修改通通放到暂存区,然后,一次性提交暂存区的所有修改。


                                                        图1

           

         如图2:是git commit -m "descripe"后的状态

                                                                  图2

7、撤销修改:

          有两种情况:

          (1)撤销缓存区中的修改(此时只执行了git add,还没有git commit -m):git reset HEAD file

           注意:这个撤销缓存区的修改,只是把缓存区中存放的修改过的文件删除了,但是工作区的文件还是修改过的,不是以前的;

                 要想删除工作区修改的文件,还得靠(2)

$ git reset HEAD readme.txt
Unstaged changes after reset:
M       readme.txt
           (2)丢弃工作区中的修改文件: git checkout -- readme.txt

$ git checkout -- readme.txt
此时查看状态,会显示,工作区干净了,即修改的文件被丢弃了

运行git status

$ git status
On branch master
nothing to commit, working directory clean

8、删除操作:

         在命令行运行rm test.txt即可删除工作区中的文件:

        删除操作有两种情况:

            (1)确实要从仓库中删除这个文件,那么可以继续运行git rm 和git commit -m ""进行删除(这样就可以删除仓库中的文件)

$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt
             (2)如果是误操作,可以通过git checkout 来撤销

$ git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

9、添加远程库:

             (1)  要关联一个远程库,使用命令git remote add origin git@github.com:Jalon2015/2015.7.1.git

$ git remote add origin git@github.com:Jalon2015/2015.7.1.git

             (2)  关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

                        此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

$ git push -f -u origin master
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 508 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@github.com:Jalon2015/2015.7.1.git
 + a90ccd0...46c0ed5 master -> master (forced update)
Branch master set up to track remote branch master from origin.
细心的可能已经发现,命令行多了个-f,那是因为push的时候,远程仓库已经有一部分代码,此时就可以-f来强制覆盖即可(因为是刚创建的远程仓库,里面没啥重要的东西);

如果没有这个-f,可能会提示如下的错误:

$ git push -u origin master
To git@github.com:Jalon2015/2015.7.1.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:Jalon2015/2015.7.1.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

10、从远程库克隆:

               一般都是先创建个远程库,然后克隆到本地;

               在Github上新建一个仓库7.1-17.35,在本地中新建一个目录,执行git clone git@github.com:Jalon2015/7.1-17.35.git:

$ git clone git@github.com:Jalon2015/7.1-17.35.git
Cloning into '7.1-17.35'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值