Git是一个开源的分布式版本控制系统。
为了帮组管理Linux内核开发而开发的一个开放源码的版本控制软件。
Git与SVN区别
- Git是分布式的版本控制系统,没有中央服务器。每个人的电脑就是一个版本库,工作不用联网,多人修改时可以互相推送。
- SVN是集中式版本控制系统,版本库放在中央服务器,因此每次都要从中央服务器中获取最新的版本,修改后再推送到服务器上,整个过程都要联网,受网络限制。
Git使用
Git 安装(windows)
官网下载对应系统版本的安装文件点击安装即可。如图:
安装之后,会有两个工具Git GUI(基于图形界面)和Git Bash(基于命令行)。
对于熟悉SVN操作的,可以下载类型的工具TortoiseGit工具,类似的方便工具还有SourceTree等。
Git配置
- 配置用户信息:Git使用用户名和邮箱作为一个标识。
1
2$git config --global user.name 'xxxxx'
$git config --global user.email 'xxxx@xxx.com'
使用–global选项,你所有的项目都会使用这个配置。如果要在某个特定的项目中使用其他的用户,只要去掉–global选项重新配置即可,新的配置保存在当前项目.git/config文件里。
- 查看配置信息:
1
$git config --list
显示如图所示:
Git工作流程
Git基本概念
- 工作区
电脑本地目录 - 暂存区
英文叫做Stage或者index,存在”.git”目录下index文件中,有时把暂存区叫做索引 - 版本库
工作区隐藏的目录”.git”
说明: - “HEAD”指向master分支一个游标,命令中出现HEAD的地方可以用master代替。
- “Objects”标识区域为Git的对象库,位于”.git/objects”目录下,包含了创建的各种对象及其内容。
- 当执行”git add .”命令时,同时该工作区的文件被写入对象库中的一个新对象中,该对象的ID被记录在暂存区文件索引中,暂存区的目录树被更新。【工作区=》暂存区】
- 当执行”git commmit”命令时,暂存区目录树写到版本库(对象库)中,master分支做出相应的更新,即master的目录树,就是提交时暂存区的目录树。【暂存区=》master】
- 当执行”git reset HEAD”命令时,暂存区的目录树被重写,被master分支目录树所替换,工作区不受影响。【master=》暂存区】
- 当执行”git rm –cache
“命令时,会从暂存区删除文件,工作区不受影响。【暂存区】 - 当执行”git checkout .”命令时,会用暂存区的文件替换工作区的文件,该操作很危险,会清除工作区未添加到暂存区的改动。
- 当执行”git checkout HEAD .”命令时,会用master分支的文件,替换暂存区和工作区的文件,该操作更危险。
- Git的其他命令:
- Git initGit:使用”Git init”命令,初始化一个Git仓库,Git仓库会生成一个隐藏目录”.git”,该目录包含了资源的所有元数据。
- Git clone:从现有仓库中拷贝项目。
1
$ git clone <repo> <dirctory>
repo:Git 仓库;directory 本地目录;
Git分支管理
使用分支意味着可以从开发主线上分离出来,在不影响主线的同时继续工作。
创建分支:
1
切换分支:
1
切换分支,用该分支最后提交的快照,替换你工作区的内容。
- 合并分支:
1
$git merge
多次合并到统一分支,也可以选择合并之后删除被并入的分支。
- 列出分支
1
当执行”git init”命令时,缺省情况下,Git会创建一个”master”分支。
- 删除分支
1
Git GitHub
Git 远程仓库(GitHub)
- 添加远程仓库
1
$git remote add [shortname] [url]
由于本地Git库与远程仓库GitHub之间的传输是通过SSH加密的,所以需要验证配置信息:
使用一下命令生成SSH Key:1
$git-keygen -t rsa -C "youmail@example.com"
成功的话,会在本地用户目录下(如:C:\Users\Administrator\)生成”.ssh”文件夹,打开.id_rsa.pub,复制里面的key。
回到github,进入Account=>setting。如图:
左边选择”SSH and GPG Keys”,点击”New SSH Key”,粘贴刚刚生成的Key。
验证是否成功:1
$ssh -T git@github.com
然后可以创建仓库repository。
- 本地仓库推送到远程仓库
- git init(新建一个本地仓库)
- git add .(添加所有文件到本地仓库)
- git commit -m ‘first commit’(提交本地仓库)
- git remote add origin http://xxxxx/xxx.git(添加远程仓库,origin是别名)
- git push -u origin master(将本地仓库推送到远程仓库,并将origin设为默认的远程仓库)
- 远程仓库克隆到本地仓库
- git remote -v(查看远程仓库)
- git fetch origin master(获取远程仓库最新版本到本地)
- git merge origin master(远程代码合并到本地仓库)
- git pull origin master(代替前面两步:fetch+merge)
最后更新: 2018年08月21日 21:58
原始链接: https://www.github.com/ChangHub/BlogImages/raw/master/2017/05/01/Git使用/