09月02, 2018

git使用教程1

git使用教程

  • git 流程图
  • git基本使用
  • git分支&合并
  • git解决冲突

Image text

一、git 基本使用

1、命令使用

  • git clone: 克隆一个远程版本
  • git remote:用于管理主机名
  • git fetch:取回所有分支
  • git pull: 拉取到本地
  • git commit:推送到本地服务器
  • git push:推送到远程主机

  • git

  • git -version 查看版本

1.1 git clone

  语法:
      git clone [--template=<template_directory>]
  [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
  [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
  [--dissociate] [--separate-git-dir <git dir>]
  [--depth <depth>] [--[no-]single-branch]
  [--recursive | --recurse-submodules] [--] <repository>
  [<directory>]
  $ git clone <repo> <directory>

  说明:
      远程克隆一个版本
  示例:
  $ git clone <版本库的网址> <本地目录名>
  $ git clone https://github.com/jquery/jquery.git mygit

1.2 git remote(用于管理主机名)

  语法:
      git remote [-v | --verbose]
    git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
    git remote rename <old> <new>
    git remote remove <name>
    git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
    git remote set-branches [--add] <name> <branch>…​
    git remote get-url [--push] [--all] <name>
    git remote set-url [--push] <name> <newurl> [<oldurl>]
    git remote set-url --add [--push] <name> <newurl>
    git remote set-url --delete [--push] <name> <url>
    git remote [-v | --verbose] show [-n] <name>…​
    git remote prune [-n | --dry-run] <name>…​
    git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…​]

  说明:
      用于管理主机名。

  示例:    
   * $ git remote -v 查看远程网址
      * $ git remote show <主机名> 查看该主机详情
      * $ git remote add <主机名> <网址> 添加远程主机
      * $ git remote rm <主机名> 删除远程主机
      * $ git remote rename <原主机名> <新主机名> 更改远程主机名

1.3 git fetch(取回代码)

语法:
    git fetch [<options>] [<repository> [<refspec>…​]]
    git fetch [<options>] <group>
    git fetch --multiple [<options>] [(<repository> | <group>)…​]
    git fetch --all [<options>]

说明:
    一旦版本库有了代码更新,需要将这些更新取回本地。实质是取回到本地服务器,需配合pull 拉取到本地目录。
示例:
    $ git fetch <远程主机名> <分支名>
    $ git fetch origin master :取回origin主机的master分支。
    $ git branch -r:查看分支  
    $ git branch -a :查看所有分支 
    $ git checkout -b newBrach origin/master  : 在origin/master的基础上,创建一个新分支
    $ git merge origin/master 
    $ git rebase origin/master: 在当前分支上,合并origin/master。

1.4 git pull(拉到本地分支)

语法:
    git pull [options] [<repository> [<refspec>…​]]

说明:
    取回远程主机某个分支的更新,在与本地分支合并。

示例:
    $ git pull <远程主机名> <远程分支名>:<本地分支名>
    $ git pull origin next:master :将origin/next分支取回,在与master本地master分支合并。
    等同于
    $ git fetch origin && $ git merge origin/next:先git fetch,在做git merge

1.5 git push(将本地分支更新,推送到远程主机)

语法:
    git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run]         [--receive-pack=<git-receive-pack>]
   [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
   [-u | --set-upstream]
   [--[no-]signed|--sign=(true|false|if-asked)]
   [--force-with-lease[=<refname>[:<expect>]]]
   [--no-verify] [<repository> [<refspec>…​]]
说明:
    git push命令用于将本地分支的更新,推送到远程主机。与git pull 相对立。

示例:
    $ git push <远程主机名> <本地分支名>:<远程分支名>
    $ git push origin master  将本地的master分支推送到远程的origin主机的master分支。

2、工具使用

* eclipse git
* sourceTree
* TortoiseGit

二、git 分支&合并

1、创建分支

$ git branch test 创建本地test 分支
$ git push origin test 推送本地分支到远程origin主机

2、合并分支

git merge的基本用法为把一个分支或或某个commit的修改合并现在的分支上。

Git mergeno-ff 可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。
git merge 则不会显示 feature,只保留单条分支记录。

http://www.yiibai.com/git/git_managing_branches.html

3、切换分支

$ git branch -a 查看所有分支
$ git checkout test 本地切换到test分支

4、查看分支

$ git branch -a 查看远程分支,带 * 号表示本地分支
    $ git branch -a  
      br-2.1.2.2  
      master  
    * test 
$ git branch 查看本地分支
    * test 

5、删除分支

$ git branch -a 查看本地分支
$ git branch -d test 删除test分支

删除远程分支
$ git branch -r -d origin/branch-name  
$ git push origin :branch-name

三、git 解决冲突

原则:先更新,后提交

更新:本地代码 <— 本地服务器 <— 远程服务器
提交:本地代码 —> 本地服务器 —> 远程服务器

摘自:http://www.cnblogs.com/shortboy/p/4429368.html

1、代码更新

官方建议:先 "远程服务器 --> 本地服务器",后 " 本地服务器 --> 本地代码"

eclipse 操作:
 a.fetch(到本地服务器) : Fetch from Upstream, "远程服务器 --> 本地服务器"
 b.pull(到本地代码) : pull, "本地服务器 --> 本地代码" 或者 "远程服务器 --> 本地服务器 --> 本地代码"

2、代码提交

官方建议: 先 "本地代码 --> 本地服务器",再 "本地服务器 --> 远程服务器"

eclipse 操作:
 a.commit(提交本地):commit," 本地代码 --> 本地服务器"
 b.push(提交远程):Push to Upstream,"本地服务器 --> 远程服务器"
 b.commit and push: 本地代码 --> 本地服务器 --> 远程服务器

3、代码冲突

 正确流程:
  a、 将所有文件,执行add to index,将修改文件添加到索引库中。
  b、 执行pull,将冲突代码植入本地。如果此时想提交代码,提示“Repository state: Conflict”,指当前冲突状态,先解决冲突。
  c、 双击冲突文件,解决冲突后,执行 add to index, 此时IDE告诉你,冲突已经解决。
  d、 最后无论执行 commit 还是commit And Push,都可以正常提交。

 其他情况:
  a.只要提交到本地服务器,IDE编辑器就告诉你,已经冲突,要求立刻解决。
  b.如果比较任性,想直接Commit And Push, IDE编译器也会很任性,回复“rejected - non - fast - forward”
  c.Git 的Commit有种强迫症,一定要你打注释,不然不给你提交。

本文链接:http://www.zhaoxudong.cn/post/gitee.html

-- EOF --

Comments

请在后台配置评论类型和相关的值。