Git代码管理

Git代码管理

一、介绍

1.1 Git概述

Git是相似于SVN、CVS等代码管理软件,使用分布式技术实现。Github是互联网代码仓库,每一个人均可以在上面建立本身的仓库,使用git完成同github仓库的代码同步等管理工做。html

IntelliJ idea->Git: 使用
Git->GitHub: 同步资源

1.2 Git逻辑架构

git架构上分为远程仓库、本地仓库和工做空间。远程仓库就是位于GitHub上的仓库,本地仓库是为用户本机的仓库目录,工做空间是用户开发所处的目录。三者关系与操做以下图所示:git

远程仓库->本地仓库: 下载远程仓库到本地仓库(git clone)
本地仓库->工做空间: 检出本地仓库项目到工做空间(git checkout)
工做空间-->本地仓库: 提交变动到本地仓库(git commit)
本地仓库-->远程仓库: 推送本地仓库到远程仓库(git push)

1.3 Git分支和标记

branch是分支,是一个独立发展的路线,成熟后会合并到master主分支上。tag是分支推动过程当中的里程碑,是一个记号。github

1.4 Git帮助

#查看全部命令
cmd>git help -a
#
cmd>git help -g

二、Github

使用git前须要在github上注册帐号,并建立字节的仓库目录。流程以下:shell

  1. 登陆github网站windows

    http://github.com
  2. 注册用户bash

    1527152006500

  3. 激活帐号服务器

    登陆邮箱,激活帐号便可。架构

    1527152217457

  4. 建立仓库ssh

1527152364036

  1. 查看github上仓库列表
    1527152430681分布式

  2. github上的仓库

    在setting选项卡中进行删除。以下图所示:
    1527486633057

    点击删除按钮后,弹出警告窗口:
    1527486671233

    输入确认删除的仓库名称后,最后才可删除!

    1527487033926

    三、Git安装、配置与链接

Git使用ssh链接github,下载git后不须要再单独下载ssh软件,git内部集成ssh软件包。

3.1 下载软件包Git-2.16.2-64-bit.exe

1527163459242

3.2 安装软件到指定目录

1527161280476

3.3 进入git-bash命令程序

执行如下命令:

cmd>git-bash.exe

进入命令行窗口,界面以下:

1527161433949

3.4 生成公私密钥对

cmd>ssh-keygen -t rsa -C "770305805@qq.com"

注意:-C后使用的是在github中注册时所用的email地址。

查看在home目录下生成公私秘钥文件

windows的主目录位于C:\Users\${当前用户}\.ssh下。

1527161768788

3.5 复制公钥文件内容到GitHub上

打开GitHub的公钥管理页面,如图所示:

1527162066418

定位到SSH and GPG keys条目,以下图所示:

1527162182667

点击new SSH Key按钮,以下图所示:

1527162335367

在文本框中粘贴生成公钥文件内容,输入title后,点击add SSH Key便可。以下图:

1527162513126

3.6 在git-bash命令下测试是否可以ssh到github服务器

# 运行git-hbash命令行程序
cmd>git-bash.exe

# ssh到远程github主机
$>ssh git@github.com

出现以下图信息,表示链接成功!

1527163977118

3.7 检查home目录下是否有.gitconfig文件

检查home目录下是否存在.gitconfig文件,没有的话,可能致使idea项目共享到github上失败,说init过程失败,邮箱地址不对。

使用命令添加:

# user.name是github上的住处帐号名称
# user.email是github注册时使用的邮箱地址
$>git config --global user.name "oldboy-xupccc" user.email "770305805@qq.com"

该文件内容以下:

[user]
    email = 770305805@qq.com
    name = oldboy-xupccc

文件截图以下:

四、Git经常使用命令

4.1 分支

分支表示不一样的开发路线,其内容会不断改变。好比产品分支、开发分支、测试分支等等。一个仓库中能够有多个分支,默认建立一个master分支,也称为主分支。若是须要,能够根据须要建立新的分支,在新分支上进行开发,成熟后再合并到master主分支上去。

4.1.1 git branch

查看分支是本地仓库中的分支。

$>git branch
4.1.2 建立分支

建立分支也是建立本地仓库中的分支。

$>git branch b1
4.1.3 切换当前分支
$>git checkout b1
4.1.4 提交到当前分支
$>git commit
4.1.5 查看当前分支
$>git show

如图所示:

xpc_git_017

4.1.6 推送到远程仓库的分支中
# 远程仓库不存在该分支,须要使用--set-upstream指定 master是分支名称
$>git push --set-upstream https://github.com/oldboy-xupccc/big12.git master
4.1.7 显式分支列表
# 能够不加 --list参数
$>git branch 
# 
$>git branch --list

如图所示:*表示当前使用的分支

xpc_git_017

4.1.8 移动分支
$>git branch -m b1 b11
4.1.9 删除分支
$>git branch -rm b1

4.2 本地仓库命令

仓库命令都是针对整个仓库进行的操做,所以命令后面不加文件等参数。

4.2.1 git init

该命令时在本地建立仓库目录后,进入目录下,将该目录初始化层仓库目录的过程。该命令会建立.git目录。

#建立目录
$>mkdir repo1

#进入目录下
$>cd repo1

#进行初始化处理
$>git init
4.2.2 git clone

克隆仓库是在首次使用远程仓库时,即本地没有仓库目录,从远程服务器下载整个仓库到本地文件系统中的初始化本地仓库过程。所以须要指定远程仓库的url地址,该地址能够在github的仓库主页上找到。克隆完成后,git默认将远程仓库的名称设置为origin。url构成由域名构成以下:

# 克隆仓库
https://github.com/oldboy-xupccc/big12.git
# 克隆仓库,指定本地名
https://github.com/oldboy-xupccc/big12.git localbig12
# 克隆仓库指定的分支,指定本地名
https://github.com/oldboy-xupccc/big12.git localbig12 -b b1
4.2.3 git add

该命令是将文件添加到跟踪区域,以备可以进行版本管理。

$>git add *.txt 
$>git add README.md
4.2.4 git reset

重置操做,至关于撤销以前的操做。好比add一个文件reset后,至关于文件仍没有被跟踪。

$>git reset
4.2.5 git status

查看状态

$>git status
4.2.6 忽略某些文件

git使用.gitignore文件指定哪些文件忽略。

# 以o或a结尾的文件忽律
*.[oa]
# 忽略以~结尾
*.~

4.2.7 gif diff

git status只能查看文件的状态,可是具体哪些作了修改,可使用diff来看:

# diff后面指定本地分支和远程分支的名称
$>git diff master origin/master
4.2.8 git pull

pull命令是下载远程仓库内容到本地仓库,覆盖本地仓库的内容。

$>git pull
4.2.9 git push

push命令是将本地仓库上传到远程仓库,覆盖远程仓库的内容。

$>git push
4.2.10 git rm

删除跟踪区文件。

$>git rm 1.txt
$>git commit -m "deleted 1.txt"

4.3 远程命令

git remote是远程仓库命令组,管理跟踪的分做所在远程仓库的集合。管理远程仓库的工做,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。

4.3.1 git remote show

要查看当前配置有哪些远程仓库,能够用git remote命令,它会列出每一个远程库的简短名字。在克隆完某个项目后,至少能够看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库

#查看当前远程仓库的简短描述
$>git remote            #输出orginal
$>git remote show       #
$>git remote show origin# 查看origin详细信息
#查看当前远程仓库的详细描述
$>git remote -v         #输出origin  https://github.com/oldboy-xupccc/big12.git (fetch)
4.3.2 git remote add

要添加一个新的远程仓库,能够指定一个简单的名字,以便未来引用。

$>git remote add oro https://github.com/oldboy-xupccc/big12.git

查看结果:

$>git remote -v

输出内容以下:

origin  https://github.com/oldboy-xupccc/big12.git (fetch)
origin  https://github.com/oldboy-xupccc/big12.git (push)
oro     https://github.com/oldboy-xupccc/big12.git (fetch)
oro     https://github.com/oldboy-xupccc/big12.git (push)
4.3.3 git fetch

fetch是抓取远程仓库有,本地仓库没有的文件。

#使用短名进行抓取
$>git fetch oro

#使用具体的远程地址进行抓取
$>git fetch https://github.com/oldboy-xupccc/big12.git
4.3.4 git push
$>git push orignal master
4.3.5 git remote show
$>git remote show origin

输出以下内容:

* remote origin
  Fetch URL: https://github.com/oldboy-xupccc/big12.git
  Push  URL: https://github.com/oldboy-xupccc/big12.git
  HEAD branch: (unknown)
  Remote branch:
    refs/remotes/origin/master stale (use 'git remote prune' to remove)
  Local branch configured for 'git pull':
    master merges with remote master
4.3.6 git remote rename|rm
#重命名远程仓库
$>git remote rename oro oro2
#删除远程仓库
$>git remote rm oro

4.4 标记

标记与分支类似,但一般用于软件的版本发布,表明着软件的发展历史阶段,每一个标记都是一个里程碑。标记一般不会修改。

4.4.1 查看标记
$>git tag 
$>git tag --list
4.4.2 建立标记
$>git tag v1.0.0
4.4.3 推送标记到远程仓库
$>git push origin --tags

五、总结

git做为一种代码管理工具,因其具备分布式特色,能够随时随地进行代码提交和管理,所以受到愈来愈多企业的青睐。而且在各大开发环境中也都对其进行了集成。