分布式版本控制系统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/#远程分支#
  

原文地址:https://www.cnblogs.com/roadlandscape/p/12248108.html