zoukankan      html  css  js  c++  java
  • 分布式版本控制系统Git

    下载地址:https://git-scm.com/download

    git一般工作流程:

      1.从远程仓库中克隆 Git 资源作为本地仓库。
      2.从本地仓库中checkout代码然后进行代码修改
      3.在提交前先将代码提交到暂存区。
      4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
      5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

    工作原理 / 流程:Workspace:工作区  Index / Stage:暂存区  Repository:仓库区(或本地仓库)  Remote:远程仓库

      

    在开始菜单里面找到 "Git --> Git Bash" 或者在右键菜单中找到" Git Bash " 打开命令行

    输入 git config --global user.name "xxxxxx" 设置用户名  git config --global user.email "xxxxxx" 设置邮箱

    设置后表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定的不同的用户名和邮箱(找到项目所在目录下的 .git/文件夹,进入执行:git config user.name "xxxxxx"  git config user.email "xxxxxx")。

    版本库:“.git”目录就是版本库,将来文件都需要保存到版本库中。
    工作目录:包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

    操作本地仓库常用命令:

      创建仓库的命令(切换目录到仓库所在的目录):git init

      把文件修改添加到暂存区:git add  xxxx

      把暂存区的所有内容提交到当前分支:git commit -m "xxx提交说明xxx"

      查看状态:git status

      查看分支:git branch

      创建分支:git branch xxx

      切换分支:git checkout xxx

      创建+切换分支:git checkout –b xxx

      合并某分支到当前分支:git merge xxx

      删除分支:git branch –d xxx

      查看当前分支的日志:git log

    忽略文件或文件夹:
      在工程中有时候并不是所有文件都需要提交的
      在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

      忽略语法: 

        空行或是以 # 开头的行即注释行将被忽略。
        可以在前面添加正斜杠 / 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。
        可以在后面添加正斜杠 / 来忽略文件夹,例如 build/ 即忽略build文件夹。
        可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
        * 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"或".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件);
        [ ] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; ? 用来匹配单个字符。
        例:
          # 忽略 .a 文件
            *.a
          # 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
            !lib.a
          # 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO(避免递归)
            /TODO
          # 忽略 build/ 文件夹下的所有文件
            build/
          # 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
            doc/*.txt
          # 忽略所有的 .pdf 文件 在 doc/ directory 下的
            doc/**/*.pdf

    一、将本地的项目上传到远端服务器

      1、远端服务器上创建一个项目 xxxxx

      2、本地创建一个文件夹 xxxxx,然后右键使用 git bash 命令行

      3、使用 git init 命令 ,初始化一个git 本地仓库(项目),会在本地创建一个 .git 的文件夹

      4、使用git remote add origin xxx远程仓库地址xxx ,与远程仓库建立连接

        如果出现 fatal: remote origin already exists.错误,先执行git remote rm origin,然后再执行上面的命令

      5、使用 git pull origin master 命令,将远程仓库pull到本地文件夹

      6、将要上传的文件,添加到刚刚创建的文件夹

      7、使用git add . 或者 git add + 文件名 (将文件保存到暂存区)

      8、使用git commit -m "描述新添加的文件内容" (就是注释) (文件保存到本地仓库)

      9、使用git push origin master ,将本地仓库推送到远程仓库

    二、将远程仓库拉取指定分支到本地仓库

      a) 本地有其他分支在项目:

        进入项目目录执行git checkout -b 本地分支名 origin/远程分支名

          如果报错,fatal: 'origin/dev' is not a commit and a branch 'dev' cannot be created from it

          需要从git上重新拉取数据然后再创建远程分支到本地  git pull

        将本地仓库推送到远程仓库时,如果本地分支名和远程分支名相同,直接使用 git push origin 分支名,否则使用 git push origin 本地分支名:远程分支名

      b)本地没有项目

        git clone -b 分支名 仓库地址

    三、将远程仓库项目克隆到本地
      1、cd 到想要保存远程仓库项目的文件夹
      2、使用 git clone xxx远程仓库地址xxx

        该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。git clone #版本库网址# #本地目录名#

    git clone与git pull区别:

      从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.
        clone是将一个库复制到你的本地,是一个本地从无到有的过程
      从远程服务器获取一个分支的更新到本地,并更新本地库,叫做pull.
        pull是指同步一个你在本地有版本的库内容更新的部分到你的本地库
        git pull相当于是从远程获取最新版本并merge(合并)到本地,如果发生了冲突,可以使用git reset --merge进行回退     git pull = git fetch + git merge,git fetch更安全一些
        git pull origin #远程分支#:#本地分支#  如果远程分支是与当前分支合并,则冒号后面的部分可以省略。相当于1. git fetch origin 2.git merge origin/#远程分支#
      

  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12248108.html
Copyright © 2011-2022 走看看