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

    git init

    初始化一个Git仓库

    Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

    在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN 会在每个子目录生成 .svn 目录,Git 只在仓库的根目录生成 .git 目录。

    git clone

    拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改

    git clone git://github.com/schacon/grit.git           

    执行该命令后,会在当前目录下创建一个名为grit的目录。

    如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字

    git clone git://github.com/schacon/grit.git mygrit

    git status

    查看在上次提交之后是否有修改。

    git status -s ,以获得简短的结果输出。如果没加 -s 参数会详细输出内容。

    git add

    将文件添加到缓存。如添加以下两个文件

    $ touch README
    $ touch hello.php
    $ ls
    README        hello.php
    $ git status -s
    ?? README
    ?? hello.php
    $ 

    接下来我们执行 git add 命令来添加文件:

    $ git add README hello.php 

    现在我们再执行 git status,就可以看到这两个文件已经加上去了。

    $ git status -s
    A  README
    A  hello.php
    $ 

    新项目中,添加所有文件很普遍,我们可以使用 git add . 命令来添加当前项目的所有文件。

    现在我们修改 README 文件:

    $ vim README

    在 README 添加以下内容:# Runoob Git 测试,然后保存退出。

    再执行一下 git status:

    $ git status -s
    AM README
    A  hello.php

    "AM" 状态的意思是,这个文件在我们将它添加到缓存之后又有改动

     git commit

    使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

    在首个例子中,我们使用 -m 选项以在命令行中提供提交注释。

    $ git add hello.php
    $ git status -s
    A  README
    A  hello.php
    $ $ git commit -m '第一次版本提交'
    [master (root-commit) d32cf1f] 第一次版本提交
     2 files changed, 4 insertions(+)
     create mode 100644 README
     create mode 100644 hello.php

    现在我们已经记录了快照。如果我们再执行 git status:

    $ git status
    # On branch master
    nothing to commit (working directory clean)

    以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。

    如果觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:

    git commit -a

    我们先修改 hello.php 文件为以下内容:

    <?php
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    ?>

    再执行以下命令:

    git commit -am '修改 hello.php 文件'
    [master 71ee2cb] 修改 hello.php 文件
     1 file changed, 1 insertion(+)

    git reset HEAD

    git reset HEAD 命令用于取消已缓存的内容。

    我们先改动文件 README 文件,内容如下:

    # Runoob Git 测试
    # 菜鸟教程 

    hello.php 文件修改为:

    <?php
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    ?>

    现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下:

    $ git status -s
     M README
     M hello.php
    $ git add .
    $ git status -s
    M  README
    M  hello.pp
    $ git reset HEAD -- hello.php 
    Unstaged changes after reset:
    M    hello.php
    $ git status -s
    M  README
     M hello.php

    现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。

    $ git commit -m '修改'
    [master f50cfda] 修改
     1 file changed, 1 insertion(+)
    $ git status -s
     M hello.php

    可以看到 hello.php 文件的修改并未提交。

    创建分支命令:

    git branch (branchname)

    切换分支命令:

    git checkout (branchname)

    当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

    合并分支命令:

    git merge 

    你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支

    列出分支

    列出分支基本命令:

    git branch

    没有参数时,git branch 会列出在本地的分支。

    $ git branch
    * master

    此例的意思就是,我们有一个叫做"master"的分支,并且该分支是当前分支。

    当执行 git init 的时候,缺省情况下 Git 就会为你创建"master"分支。

    如果我们要手动创建一个分支。执行 git branch (branchname) 即可。

    $ git branch testing
    $ git branch
    * master
      testing

    现在我们可以看到,有了一个新分支 testing。

    当以此方式在上次提交更新之后创建了新分支,如果后来又有更新提交, 然后又切换到了"testing"分支,Git 将还原你的工作目录到你创建分支时候的样子

    接下来我们将演示如何切换分支,我们用 git checkout (branch) 切换到我们要修改的分支。

    $ ls
    README
    $ echo 'runoob.com' > test.txt
    $ git add .
    $ git commit -m 'add test.txt'
    [master 048598f] add test.txt
     2 files changed, 1 insertion(+), 3 deletions(-)
     delete mode 100644 hello.php
     create mode 100644 test.txt
    $ ls
    README        test.txt
    $ git checkout testing
    Switched to branch 'testing'
    $ ls
    README        hello.php

    当我们切换到"testing"分支的时候,我们添加的新文件test.txt被移除了, 原来被删除的文件hello.php文件又出现了。切换回"master"分支的时候,它们有重新出现了。

    $ git checkout master
    Switched to branch 'master'
    $ ls
    README        test.txt

    我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。

    $ git checkout -b newtest
    Switched to a new branch 'newtest'
    $ git rm test2.txt 
    rm 'test2.txt'
    $ ls
    README        test.txt
    $ git commit -am 'removed test2.txt'
    [newtest 556f0a0] removed test2.txt
     1 file changed, 1 deletion(-)
     delete mode 100644 test2.txt
    $ git checkout master
    Switched to branch 'master'
    $ ls
    README        test.txt    test2.txt

    如你所见,我们创建了一个分支,在该分支的上下文中移除了一些文件,然后切换回我们的主分支,那些文件又回来了。

    使用分支将工作切分开来,从而让我们能够在不同上下文中做事,并来回切换。

    删除分支

    删除分支命令:

    git branch -d (branchname)

    例如我们要删除"testing"分支:

    $ git branch
    * master
      testing
    $ git branch -d testing
    Deleted branch testing (was 85fc7e7).
    $ git branch
    * master

    分支合并

    一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:

    git merge
    $ git branch
    * master
      newtest
    $ ls
    README        test.txt    test2.txt
    $ git merge newtest
    Updating 2e082b7..556f0a0
    Fast-forward
     test2.txt | 1 -
     1 file changed, 1 deletion(-)
     delete mode 100644 test2.txt
    $ ls
    README        test.txt

    以上实例中我们将 newtest 分支合并到主分支去,test2.txt 文件被删除。

     

    上传代码步骤:

    1、先创建一个文件夹,用来存放git代码的,如test1
    2、进入test1目录,git clone http://git.souche.com/testGroup/RF_InterfaceTest.git   (这一步是拉maste分支的代码下来)
    3、进入RF_InterfaceTest  目录,git branch 查看当前分支,显示当前是master分支
    4、git branch -a 查看所有分支包括本地和远程
    5、git merge origin/weijin_charge    就切换到了这个分支的代码
         或者
         git checkout -b [local branch]   [origin/remote branch]
         举例      git checkout -b CRM_LOL origin/CRM_LOL        CRM_LOL(本地分支名,没有的话创建)

    6、进入到本地的文件夹内,git初始化:git init

    7、将代码放到暂存区:git add . 

    8、提交代码到本地分支:git commit -m "备注"

    9、push代码到远程仓库:git push origin [local branch]:[remote branch] 

        eg:git push origin LOL origin/LOL

    • 推送本地分支到远程新分支:git push origin local_branch:remote_branch

            local_branch必须为你本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支

            eg:    git push origin LOL:CRM_LOL       本地分支名:LOL     远程分支名:CRM_LOL

           

    • 删除远程分支    git push origin :remote_branch

            local_branch留空的话则是删除远程remote_branch分支

            eg: git push origin :LOL         远程分支名:LOL

  • 相关阅读:
    IP地址分类和局域网常用IP地址
    【转载】NAT(Network Address Translation )——解决IPV4地址短缺之道的方法初识
    【转载】DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
    三层网络架构,接入交换机、汇聚交换机和核心交换机
    STP协议(生成树协议)简介
    最长回文子串 and 最长回文子序列(转)
    Leetcode030 substring-with-concatenation-of-all-words 字符串查找
    最长公共子序列 (LCS) 详解+例题模板(全)(转)
    MySQL常用命令
    数据库基础知识复习(转)
  • 原文地址:https://www.cnblogs.com/chengchengla1990/p/7044143.html
Copyright © 2011-2022 走看看