Git常用命令及操作总结

By:授客 QQ:1033553122

利用TortoiseGit克隆源码库到本地

1、安装TortoiseGit

2、打开Git,进入到源码库,点击图示红色选框框选按钮,弹窗界面中复制链接

2、进入要存放源码库的本地目标目录(比如:E:\Git),右键鼠标-选择Git-Clone,

弹出如下界面

3、如上图,按默认配置,点击Ok 按钮,弹窗密码输入框中输入密码,点击Ok

就这样,会把远程代码的master分支下载到本地目录(例中为 E:\Git\ddt-core-web)。

注:只会克隆master分支到本地

常用命令总结

git clone

git clone [option] <</span>版本库url> <</span>本地目录>

例:下载源码库master分支到本地E:\Git\ddt-core-web目录

git clone --progress -v  "http://01094711@10.116.218.109:8080/scm/ddt/ddt-core-web.git" "E:\Git\ddt-core-web"

Cloning into 'E:\Git\ddt-core-web'...
POST git-upload-pack (gzip 1100 to 620 bytes)
remote: Counting objects: 20726, done.
remote: Compressing objects: 100% (10996/10996), done.
Receiving objects: 100% (20726/20726), 60.25 MiB | 11.28 MiB/s, done.
Resolving deltas: 100% (10079/10079), done.
remote: Total 20726 (delta 10079), reused 15985 (delta 7525)
Checking connectivity... done.
Checking out files: 100% (2132/2132), done.

Success (59156 ms @ 2017/5/25 11:15:16)

参考连接:

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

git
remote

Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。

例:

cd E:\Git\ddt-core-web\

注:除git colne命令外,git remote及以下命令的执行,都要先进入克隆的版本库所在的本地库目录才可以执行,否则会提示类似如下错误

fatal: Not a git repository (or any of the parent directories): .git

列出所有远程主机
E:\Git\ddt-core-web>git remote
origin


使用-v选项,可以参看远程主机的网址

E:\Git\ddt-core-web>git remote -v
origin  http://01094711@10.116.218.109:8080/scm/ddt/ddt-core-web.git (fetch)
origin  http://01094711@10.116.218.109:8080/scm/ddt/ddt-core-web.git (push)

输出说明当前只有一台远程主机,叫做origin,以及它的网址


查看主机的详细信息(git remote show


<</span>
远程主机名>

E:\Git\ddt-core-web>git remote show origin
Password for 'http://01094711@10.116.218.109:8080':
* remote origin
  Fetch URL: http://01094711@10.116.218.109:8080/scm/ddt/ddt-core-web.git
  Push  URL: http://01094711@10.116.218.109:8080/scm/ddt/ddt-core-web.git
  HEAD branch: master
  Remote branches:
    master       tracked
    production   tracked
    release/V5.3 tracked
    release/V5.4 tracked
    release/V5.5 tracked
    release/V5.6 tracked
    release/V5.7 tracked
    release/V5.8 tracked
    release/V5.9 tracked
    release/V6.0 tracked
    release/V6.1 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)

参考链接

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


 


git branch


 


查看所有本地分支

E:\Git\ddt-core-web>git
branch*
master

说明:*  表示该分支为当前分支


查看所有远程分支

E:\Git\ddt-core-web>git
branch -r

origin/HEAD ->
origin/master

origin/master

origin/production

origin/release/V5.3

origin/release/V5.4

origin/release/V5.5

origin/release/V5.6

origin/release/V5.7

origin/release/V5.8

origin/release/V5.9

origin/release/V6.0

origin/release/V6.1


查看所有分支

E:\Git\ddt-core-web>git
branch -a

* master

remotes/origin/HEAD ->
origin/master

remotes/origin/master

remotes/origin/production

remotes/origin/release/V5.3

remotes/origin/release/V5.4

remotes/origin/release/V5.5

remotes/origin/release/V5.6

remotes/origin/release/V5.7

remotes/origin/release/V5.8

remotes/origin/release/V5.9

remotes/origin/release/V6.0

remotes/origin/release/V6.1


删除指定分支(
git
branch -d
 branch_name)

E:\Git\ddt-core-web>git branch -d
myBranch


git fetch


将某个远程主机的更新,全部取回本地
(git
fetch <<font face="宋体">远程主机名>)

E:\Git\ddt-core-web>git
fetch origin

Password for
'http://01094711@10.116.218.109:8080':输入密码,回车

remote: Counting objects: 46, done.

remote: Compressing objects: 100% (31/31), done.

remote: Total 46 (delta 14), reused 0 (delta 0)

Unpacking objects: 100% (46/46), done.

From
http://10.116.218.109:8080/scm/ddt/ddt-core-web

4999476..99ebceb
 master
    ->
origin/master

注意:默认情况下,git
fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名


取回远程主机的指定分支(git fetch 远程主机名
分支名)

E:\Git\ddt-core-web>git
fetch origin master

Password for
'http://01094711@10.116.218.109:8080':输入密码,回车

From
http://10.116.218.109:8080/scm/ddt/ddt-core-web

* branch
           master
    ->
FETCH_HEAD

例中意在取回orgin远程主机上名为master的分支


git check out

执行fetch命令,取回远程主机的更新后,便可使用git check
out命令来建立本地分支


git checkout -b -newbranch  []

创建新的分支并切换到新分支上去,b代表branch的意思,newbranch 是本地分支的名称,如果本地分支名已经存在,
则不需要“-b”选项。如果没有指定提交点(start_point),默认从HEAD指向的提交创建分支。


在指定分支的基础上,新建本地分支

E:\Git\ddt-core-web>git
checkout -b newBranch origin/master

Branch newBranch set up to track remote branch master from
origin.

Switched to a new branch 'newBranch'

以上命令的执行,会在origin/master的基础上,新建newBranch分支

说明:

1、创建本地分支并不会新建对应名称的文件夹;

2、新建分支后,会自动切换当前分支为新建的本地分支,如下

E:\Git\ddt-core-web>git branch -a

master

* newBranch

remotes/origin/HEAD ->
origin/master

remotes/origin/master

……

再新建一个本地分支newBranch2

E:\Git\ddt-core-web>git checkout -b newBranch2
origin/master

Branch newBranch2 set up to track remote branch master from
origin.

Switched to a new branch 'newBranch2'

E:\Git\ddt-core-web>git branch -a

master

newBranch

* newBranch2

……


切换当前分支为其它某个已存在分支(
git
checkout
 )

E:\Git\ddt-core-web>git checkout newBranch

Switched to branch 'newBranch'

Your branch is up-to-date with 'origin/master'.

E:\Git\ddt-core-web>git branch -a

master

* newBranch

……

参考连接:http://www.yiibai.com/git/git_fetch.html


git merge


在本地分支上合并
指定分支。

E:\Git\ddt-core-web>git
merge newBranch2

Already up-to-date.

以上命令的执行会把newBranch2分支合并到当前分支上

把origin/master分支合并到当前分支上

E:\Git\ddt-core-web>git merge origin/master

Already up-to-date.

参考连接:http://www.yiibai.com/git/git_fetch.html


git pull

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。


git pull <<font face="宋体">远程主机名> <</font>远程分支名>:<</font>本地分支名>

例,取回origin主机的master分支,与本地的newBranch分支合并

E:\Git\ddt-core-web>git
pull origin master:newBranch

Password for 'http://01094711@10.116.218.109:8080':

remote: Counting objects: 209, done.

remote: Compressing objects: 100% (177/177), done.

remote: Total 209 (delta 93), reused 0 (delta 0)

Receiving objects: 100% (209/209), 284.77 KiB | 0 bytes/s,
done.

Resolving deltas: 100% (93/93), completed with 38 local
objects.

From http://10.116.218.109:8080/scm/ddt/ddt-core-web

99ebceb..1ef1bd3
 master
    ->
newBranch

99ebceb..1ef1bd3
 master
    ->
origin/master

warning: fetch updated the current branch head.

fast-forwarding your working tree from

commit 99ebceb3a6430ef828f9fe8a4df6f4283ef35b99.

Already up-to-date.

取回origin/master分支,再与当前分支合并。实质上,这等同于先做git
fetch,再做git
merge。

git fetch origin

git merge origin/next


如果远程分支是与当前分支合并,则冒号后面的部分可以省略

E:\Git\ddt-core-web>git pull origin master

Password for 'http://01094711@10.116.218.109:8080':

From http://10.116.218.109:8080/scm/ddt/ddt-core-web

* branch
           master
    ->
FETCH_HEAD

Updating 4999476..1ef1bd3

Fast-forward

ddt-main/pom.xml
                                  |
  7 ++

.../java/com/sf/ddt/auth/action/AuthAction.java
   |
  4 +-

.../sf/ddt/express/action/SelfHelpDatasAction.java
|  28 +++----

……

在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。

Git也允许手动建立追踪关系。

git branch --set-upstream master origin/next

上面命令指定master分支追踪origin/next分支。

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名

E:\Git\ddt-core-web>git
pull origin

Password for 'http://01094711@10.116.218.109:8080':

Already up-to-date.

上面命令表示,取回当前分支与对应的origin主机”追踪分支”(remote-tracking
branch),与本地的当前分支进行合并。

如果当前分支只有一个追踪分支,连远程主机名都可以省略

E:\Git\ddt-core-web>git
pull

Password for 'http://01094711@10.116.218.109:8080':

Already up-to-date.

如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git
pull不知不觉删除了本地分支。但是,你可以改变这个行为,加上参数
-p 就会在本地删除远程已经删除的分支。

$ git pull -p

# 等同于下面的命令

$ git fetch --prune origin

$ git fetch -p


git pull --rebase

如果采用git rebase呢,git rebase命令会把你的当前分支里的每个提交(commit,上次
pull 之后的变更)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后合并远程分支到当前分支,最后把保存的这些补丁应用到当前分支上

参考链接:

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

Git 常用命令及操作总结的更多相关文章

  1. git 常用命令行操作

    git常用命令行操作: 点击 git bash 进入到命令行: git clone https://github.com/wlz1244/qingoo.git   //下载一个master分支代码 g ...

  2. Git常用命令的操作

    Git命令 一.创建版本库 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 使用命令git add <file>,注意,可反复多次使用,添加多个文件: 使 ...

  3. git常用命令操作

    git常用命令 #查看配置 git config -l #查看系统config git config --system --list #查看当前用户(global)配置 git config --gl ...

  4. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  6. Git 常用命令大全

    Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...

  7. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  8. GIT常用命令备忘

    Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...

  9. Git 常用命令2

    Git 常用命令 Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ gi ...

随机推荐

  1. Python - GUI(Graphical User Interface,图形用户界面)

    Tkinter https://docs.python.org/3/library/tkinter.html Python自带的标准GUI库,可用于快速创建GUI应用程序,能够满足基本的GUI程序要求 ...

  2. spring boot -整合Ehcahe

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  3. 使用 DryIoc 替换 Abp 的 DI 框架

    一.背景 你说我 Castle Windsor 库用得好好的,为啥要大费周章的替换成 DryIoc 库呢?那就是性能,DryIoc 是一款优秀而且轻量级的 DI 框架,整个项目代码就两个文件,加起来代 ...

  4. 什么是web标准??

    web标准 不是某一个标准,而是一系列标准的集合.网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior).对应的标准也分三方面:结构化标准语言主要 ...

  5. 在Mac OSX上配置Appium+Android自动化测试环境

    前提准备 开始正文之前,你需要准备好一些基本条件: 1.安装好Mac OSX 操作系统的设备 2.能够访问中国局域网以外资源的方法(没有也行,但很痛苦) 3.已经安装好 homebrew 4.已经安装 ...

  6. 多线程编程学习笔记——使用异步IO

    接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...

  7. 【原创】NVIC中断

    (1)NVIC     全称为Next Vector Interrupt Controoler,嵌套中断向量控制器,是ARM Cortex M3的内部设备之一,任何一款基于ARM Cortex M3的 ...

  8. Python中的序列操作

    官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-range 序列简介 序列是指按照位置 ...

  9. zabbix实现QQ邮件报警通知--技术流ken

    前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...

  10. MySQL系列详解十:MySQL多源复制演示-技术流ken

    前言 多源复制即多主一从结构,多个主服务器端的数据都会同步到后端一个从服务器上面.至于为什么要做多源复制下面的总结很到位. 1.灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了) ...