zoukankan      html  css  js  c++  java
  • git常用命令

    Git命令行配置
    1 安装Github
    2 安装msysgit
    3 要配置用户名和油箱
      git config --global user.name <用户名>
     我的命令就是:git config --global user.name mchdbagh
      git config --global user.email <油箱>
     我的命令就是:git config --global mchdba@yahoo.com
    4 验证有没有连接上remote远程服务器
    ssh -T git@github.com

    5 要生成ssh key
    $ ssh -keygen
    看到需要输入密码的,直接2个回车键即可回到主窗口。

    去找.ssh里面的id_isa.pub打开,最好用notepad++打开,的里面的内容copy出来,然后放到https://网址里面,加入
    如何生成,请看文档详细介绍。http://www.worldhello.net/gotgithub/index.html#id6

    Git常用命令介绍
    git init --初始化项目,刚开始初始化项目的时候使用
    git clone --从服务器上克隆到本地,如果服务器上面已经有项目了,直接使用这个命令clone到本地进行使用。
    git status --查看版本信息
    git add  --添加本地文件
    git commit --提交更改
    git push --tags --将更改推送到服务器

    (1) git init操作
    kyman@SKYMAN-CF7E3587 ~
     mkdir test_git
    
    kyman@SKYMAN-CF7E3587 ~
     cd test_git/
    
    kyman@SKYMAN-CF7E3587 ~/test_git
     ls
    
    kyman@SKYMAN-CF7E3587 ~/test_git
    $ git init
    Initialized empty Git repository in c:/Documents and Settings/skyman/test_git/.git/
     ls -a
      ..  .git

    看到有.git文件
    $ ls -al
    total 0
    drwxr-xr-x    3 skyman   Administ        0 Sep 25 23:10 .
    drwxr-xr-x   41 skyman   Administ        0 Sep 25 23:10 ..
    drwxr-xr-x    1 skyman   Administ        0 Sep 25 23:10 .git
    
    $

    看到多另一个.git目录,表示项目创建成功了。

    (2) git clone操作
    登陆 https://github.com/,看右下角,如图下图,找到打开库的网址把提示mchdbagh/manual56加到后面,网址就是 https://github.com/mchdbagh/manual56

    打开后,点击右下角的HTTPS clone URL栏目下方的复制按钮,就得到了库的clone地址 https://github.com/mchdbagh/manual56.git,如图所示

    也可以选择ssh方式:git@github.com:mchdbagh/manual56.git 

    git clone git@github.com:mchdbagh/manual56.git;


    打开 git clone git@github.com:mchdbagh/helloworld.git
    如果需要自定义一个目录名,可以写成 git clone git@github.com:mchdbagh/helloworld.git test_hw

    检测是否clone成功,看到有manual56目录是否存在

    $ ls
    AppData           Favorites       NTUSER.DAT  SendTo          _viminfo     manual56                    wc
    Application Data  IECompatCache   NetHood     Templates       admovie.jpg  ntuser.dat.LOG              ??????????????????
    CMB               IETldCache      PrintHood   UserData        client.log   ntuser.ini                  ??????
    Contacts          Local Settings  PrivacIE    VirtualBox VMs  extensions   ntuserdirect_MyManager.dat
    Cookies           My Documents    Recent      WINDOWS         helloworld   test_git

    (3) git add 操作实验

    $ cd manual56/
    --查看git当前版本库的状态
    $ git status 
    # On branch master
    nothing to commit (working directory clean)
    
    --进入我要修改的章节目录
    $ cd docs/Chapter_17/  
    $ vim 17.5.0.0.0.md    --新建一个md文件,里面简单写“only a test”字符串,wq保存退出编辑状态。
    
    -- 查看状态
    $ git status
    # On branch master
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       17.5.0.0.0.md   --看到有红颜色的一个新的文件还没有提交上去,这一行的文件名显示为红色。
    nothing added to commit but untracked files present (use "git add" to track)

    添加文件add

    git add 17.5.0.0.0.md添加单个文件,多个文件可以用空格来隔开,比如(git add 17.5.0.0.0.md 17.5.0.0.1.md 17.5.0.0.2.md),也可以使用git add -A添加所有的文件。

    --执行添加命令
    $ git add 17.5.0.0.0.md
    
    --查看单个文件版本状态
    $ git status 17.5.0.0.0.md 
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       new file:   17.5.0.0.0.md
    #
    
    --查看整个库版本状态
    $ git status 
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       new file:   17.5.0.0.0.md
    #


    手动用MarkdownPad打开C:\Documents and Settings\skyman\manual56\docs\Chapter_17\17.5.0.0.0.md,在里面输入中文字符串,保存退出。然后查看版本库状态,显示绿颜色的表示已经缓存起来了,显示红颜色的是修改过的但是没有缓存起来的。

    (4) git commit,修改完之后,进行commit提交 git commit -m "Test change", -m 是指定提交信息,必填项目
    $ git commit -am "Test chanage"
    [master 3e96f90] Test chanage
     1 file changed, 1 insertion(+), 1 deletion(-)
     
    $ git status 
    # On branch master
    # Your branch is ahead of 'origin/master' by 2 commits.
    #
    nothing to commit (working directory clean)
    --显示已经提交到本地版本库了

    (5)把已经修改的文件push到服务器,git push --tags   --push所以缓存到本地服务器的文件。

    $ git push origin master  
    Counting objects: 13, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (8/8), done.
    Writing objects: 100% (10/10), 768 bytes, done.
    Total 10 (delta 6), reused 0 (delta 0)
    To git@github.com:mchdbagh/manual56.git
       e754e68..3e96f90  master -> master
    (6)git diff查看已暂存和未暂存的更新

    实际上 git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令。稍后我们会详细介绍git diff,不过现在,它已经能回答我们的两个问题了:当前做的哪些更新还没有暂存?有哪些更新已经暂存起来准备好了下次提交? git diff 会使用文件补丁的格式显示具体添加和删除的行。

    假如再次修改 README 文件后暂存,然后编辑 benchmarks.rb 文件后先别暂存,运行 status 命令,会看到:

    $ git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD 
        
        
       
         ..." to unstage)
    #
    #	new file:   README
    #
    # Changed but not updated:
    #   (use "git add 
         
         
         
       
          ..." to update what will be committed)
    #
    #	modified:   benchmarks.rb
    #
         
         
     

    要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff

    $ git diff
    diff --git a/benchmarks.rb b/benchmarks.rb
    index 3cb747f..da65585 100644
    --- a/benchmarks.rb
    +++ b/benchmarks.rb
    @@ -36,6 +36,10 @@ def main
               @commit.parents[0].parents[0].parents[0]
             end
    
    +        run_code(x, 'commits 1') do
    +          git.commits.size
    +        end
    +
             run_code(x, 'commits 2') do
               log = git.commits('master', 15)
               log.size

    此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。

    若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用git diff --staged,效果是相同的,但更好记些。)来看看实际的效果:

    $ git diff --cached
    diff --git a/README b/README
    new file mode 100644
    index 0000000..03902a1
    --- /dev/null
    +++ b/README2
    @@ -0,0 +1,5 @@
    +grit
    + by Tom Preston-Werner, Chris Wanstrath
    + http://github.com/mojombo/grit
    +
    +Grit is a Ruby library for extracting information from a Git repository

    请注意,单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了所有更新过的文件后,运行git diff 后却什么也没有,就是这个原因。

    像之前说的,暂存 benchmarks.rb 后再编辑,运行 git status 会看到暂存前后的两个版本:

    $ git add benchmarks.rb
    $ echo '# test line' >> benchmarks.rb
    $ git status
    # On branch master
    #
    # Changes to be committed:
    #
    #	modified:   benchmarks.rb
    #
    # Changed but not updated:
    #
    #	modified:   benchmarks.rb
    #

    现在运行 git diff 看暂存前后的变化:

    $ git diff
    diff --git a/benchmarks.rb b/benchmarks.rb
    index e445e28..86b2f7c 100644
    --- a/benchmarks.rb
    +++ b/benchmarks.rb
    @@ -127,3 +127,4 @@ end
     main()
     
     ##pp Grit::GitRuby.cache_client.stats
    +# test line

    然后用 git diff --cached 查看已经暂存起来的变化:

    $ git diff --cached
    diff --git a/benchmarks.rb b/benchmarks.rb
    index 3cb747f..e445e28 100644
    --- a/benchmarks.rb
    +++ b/benchmarks.rb
    @@ -36,6 +36,10 @@ def main
              @commit.parents[0].parents[0].parents[0]
            end
    
    +        run_code(x, 'commits 1') do
    +          git.commits.size
    +        end
    +
            run_code(x, 'commits 2') do
              log = git.commits('master', 15)
              log.size


    OK成功了,然后打开网址https://github.com/xxxxxx/blob/master/docs/Chapter_17/17.5.0.0.0.md去看提交的新内容,见图片所示,新建立的文件17.5.0.0.0.md已经成功上传到remote文件服务器了。


    这些项目,如果是个人项目,已经足够满足我们的日常使用要求了,但是如果多人协同操作,那还是远远不够的。

  • 相关阅读:
    三、一元线性回归--python数据分析--财政收入和国内生产总值之间的线性关系
    三、多因数方差分析==python数据分析--研究一个班三组不同性别的同学(分别接受了三种不同的教学方法)在数学成绩上面是否有显著差异
    二、单因数方差分析--python数据分析---分析四种不同的猪饲料 对 猪体重增加的作用有无不同。
    cda课程--python数据分析与挖掘之---朴素贝叶斯的应用!
    一、独立样本T检验--python数据分析--两种玉米产量是否有差距?
    git
    win7安装
    【日常小问题】windows系统操作技巧
    【OpenGL】如何绘制Shadow
    【图形学】图形管道
  • 原文地址:https://www.cnblogs.com/xhqhome/p/5535033.html
Copyright © 2011-2022 走看看