zoukankan      html  css  js  c++  java
  • git的使用

    2.1

    检查配置信息:

      git config --list 列出git能找到的配置

      git config user.name 检查git的某项配置

    获取帮助:

      git help <命令>  或 git <命令> --help 

      例如想要获取config命令手册,git help config

    2.2

    git基础:

      首先初始化一个仓库(repository)、开始或停止跟踪(track)文件、暂存(stage)或提交(commit)更改。如何简单地撤销错误操作,如何向你远程仓库推送(push),以及如何从你远程仓库拉去(pull)文件。

      获取git仓库:

      ①在现有的目录下初始化仓库

        git init 该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干

        git add 命令实现对文件的跟踪,然后执行git commit提交。

        

    git add *.java
    git commit -m 'this is my first commit'

       ②从一个服务器下克隆一个现有的git仓库。

        克隆仓库的命令格式是 git clone [url]

        Git 支持多种数据传输协议。 上面的例子使用的是 https:// 协议,不过你也可以使用 git:// 协议或者使用 SSH 传输协议,比如 user@server:path/to/repo.git 

      git status 查看文件的状态  

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

    只要在 Changes to be committed 这行下面的,就说明是已暂存状态。git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。

    出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 git add 命令。 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。

    现在的暂存区域已经准备妥当可以提交了。 在此之前,请一定要确认还有什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。 这些修改过的文件只保留在本地磁盘。 所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令 git commit

    跳过使用暂存区域

    尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤:

    移除文件

    要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

    如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是 未暂存清单)看到:

    $ rm PROJECTS.md
    $ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            deleted:    PROJECTS.md
    
    no changes added to commit (use "git add" and/or "git commit -a")

    2.3 Git 基础 - 查看提交历史

      查看提交历史 : 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的工具是 git log 命令。

      git log 有许多选项可以帮助你搜寻你所要找的提交, 接下来我们介绍些最常用的。

      一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交:

      如果你想看到每次提交的简略的统计信息,你可以使用 --stat 选项

      另外一个常用的选项是 --pretty。 git log --pretty=format:"%h - %an, %ar : %s"

    2.4 Git 基础 - 撤消操作

    撤消操作

      例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

      $ git commit -m 'initial commit'
      $ git add forgotten_file
      $ git commit --amend

      最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。

    取消暂存的文件

      在 “Changes to be committed” 文字正下方,提示使用 git reset HEAD <file>... 来取消暂存。 所以,我们可以这样来取消暂存 CONTRIBUTING.md 文件:

    $ git reset HEAD CONTRIBUTING.md
    Unstaged changes after reset:
    M    CONTRIBUTING.md
    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        renamed:    README.md -> README
    
    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:   CONTRIBUTING.md

    撤消对文件的修改

        如果你并不想保留对 CONTRIBUTING.md 文件的修改怎么办? 你该如何方便地撤消修改 - 将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)? 幸运的是,git status 也告诉了你应该如何做。 在最后一个例子中,未暂存区域是这样:

      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:   CONTRIBUTING.md

      它非常清楚地告诉了你如何撤消之前所做的修改。 让我们来按照提示执行:

      $ git checkout -- CONTRIBUTING.md
      $ git status
      On branch master
      Changes to be committed:
        (use "git reset HEAD <file>..." to unstage)
      
          renamed:    README.md -> README

      可以看到那些修改已经被撤消了。

    记住,在 Git 中任何 已提交的 东西几乎总是可以恢复的。 甚至那些被删除的分支中的提交或使用 --amend选项覆盖的提交也可以恢复(阅读 数据恢复 了解数据恢复)。 然而,任何你未提交的东西丢失后很可能再也找不到了

    2.5 Git 基础 - 远程仓库的使用

    查看远程仓库

      如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin - 这是 Git 给你克隆的仓库服务器的默认名字

      你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

      $ git clone https://githup.com/schacon/ticgit
      $ git remote -v   origin https://github.com/schacon/ticgit (fetch)   origin https://github.com/schacon/ticgit (push)

    添加远程仓库

      我在之前的章节中已经提到并展示了如何添加远程仓库的示例,不过这里将告诉你如何明确地做到这一点。 运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写

      $ git remote

      origin

      $ git remote add pb https://github.com/paulboone/ticgit
      $ git remote -v
      origin	https://github.com/schacon/ticgit (fetch)
      origin	https://github.com/schacon/ticgit (push)
      pb	https://github.com/paulboone/ticgit (fetch)
      pb	https://github.com/paulboone/ticgit (push)

      现在你可以在命令行中使用字符串 pb 来代替整个 URL。 例如,如果你想拉取 Paul 的仓库中有但你没有的信息,可以运行 git   fetch pb

      $ git fetch pb
      remote: Counting objects: 43, done.
      remote: Compressing objects: 100% (36/36), done.
      remote: Total 43 (delta 10), reused 31 (delta 5)
      Unpacking objects: 100% (43/43), done.
      From https://github.com/paulboone/ticgit
       * [new branch]      master     -> pb/master
       * [new branch]      ticgit     -> pb/ticgit

    从远程仓库中抓取与拉取

    $ git fetch [remote-name]

    推送到远程仓库

    当你想分享你的项目时,必须将其推送到上游。 这个命令很简单:git push [remote-name] [branch-name]。 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字),那么运行这个命令就可以将你所做的备份到服务器:

    $ git push origin master

    查看远程仓库

    如果想要查看某一个远程仓库的更多信息,可以使用 git remote show [remote-name] 命令。 如果想以一个特定的缩写名运行这个命令,例如 origin,会得到像下面类似的信息:

    $ git remote show origin
    * remote origin
      Fetch URL: https://github.com/schacon/ticgit
      Push  URL: https://github.com/schacon/ticgit
      HEAD branch: master
      Remote branches:
        master                               tracked
        dev-branch                           tracked
      Local branch configured for 'git pull':
        master merges with remote master
      Local ref configured for 'git push':
        master pushes to master (up to date)

    远程仓库的移除与重命名

    如果想要重命名引用的名字可以运行 git remote rename 去修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:

    $ git remote rename pb paul
    $ git remote
    origin
    paul

    值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 pb/master 的现在会引用 paul/master

    如果因为一些原因想要移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 - 可以使用 git remote rm :

    $ git remote rm paul
    $ git remote
    origin

    2.6 Git 基础 - 打标签

      在 Git 中列出已有的标签是非常简单直观的。 只需要输入 git tag

      $ git tag -a v1.4 -m 'my version 1.4'
      $ git show v1.4

    3.1 Git 分支 - 分支简介

    https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%AE%80%E4%BB%8B

    分支创建

    Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针。 比如,创建一个 testing 分支, 你需要使用 git branch 命令:

    $ git branch testing

    分支切换

    要切换到一个已存在的分支,你需要使用 git checkout 命令。 我们现在切换到新创建的 testing 分支去:

    $ git checkout testing


    你可以简单地使用 git log 命令查看分叉历史。 运行 git log --oneline --decorate --graph --all

    $ git log --oneline --decorate --graph --all
    * c2b9e (HEAD, master) made other changes
    | * 87ab2 (testing) made a change
    |/
    * f30ab add feature #32 - ability to add new formats to the
    * 34ac2 fixed bug #1328 - stack overflow under certain conditions
    * 98ca9 initial commit of my project

    由于 Git 的分支实质上仅是包含所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件,所以它的创建和销毁都异常高效。 创建一个新分支就相当于往一个文件中写入 41 个字节(40 个字符和 1 个换行符),如此的简单能不快吗?

    3.3 Git 分支 - 分支管理

      https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86

    3.5 Git 分支 - 远程分支

     
     
     
     

      

  • 相关阅读:
    Linux 清理boot分区
    Linux 虚拟内存
    使用mongoskin操作MongoDB
    nodejs操作session和cookie
    nodejs接收get参数和post参数
    Tomcat--在IDEA创建Java Web项目,通过tomcat启动
    Tomcat--配置
    Mac安装Tomcat
    XML--解析
    XML--约束
  • 原文地址:https://www.cnblogs.com/xuhewei/p/9506832.html
Copyright © 2011-2022 走看看