Git的使用总结

生活不止眼前的苟且,还有诗和远方的田野 

Git的介绍(分布式版本控制系统)

Git与Svn的最主要的区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,如果需要对某些项目文件进行操作时,需要从版本库拉取该项目文件,而后就可以对拷贝的文件进行修改,最后再提交到SVN中央服务器,终端服务器最终会对提交的文件进行合并。

Git是分布式版本控制系统,是目前世界最先进的分布式版本控制系统。它没有中央服务器的,每个人的电脑就是一个完整的版本库。

工作原理/流程:

Workspace:工作区

Index / Stage:暂存区

Repository:版本库区(或本地仓库)

Remote:远程仓库

工作区:就是你在电脑上看到的目录,比如目录下test里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

暂存区:版本库中的一个目录。

文件状态

git status #查看文件状态

版本库(本地仓库)的使用

创建版本库

第一步:创建空目录(mkdir命令)并且进入到此目录(cd命令)

第二步:使用git init在此目录下创建Git版本库

第三步:Git版本库初始化配置

#常用指令#
git init [project-name]
git config [--global] user.name "[name]" #名称
git config [--global] useremail "[email address]" #邮箱
git config --list #显示当前配置
git config -e [--global] #编辑配置文件
git status #查看本地仓库状态

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

文件提交版本库

第一步:使用 git add 把文件添加到暂存区进去。

第二步:使用git commit把暂存区的所有内容提交到当前分支上。

git add <file> #从工作区添加文件到暂存区
git commit -m <message> #将暂存区的文件提交到版本库里,其中"message"为提交备注内容
git diff [file] #查看文件修改内容

一次提交将使得版本库进行一次更新 

删除文件
git rm file_name #删除工作区的文件再提交到当前分支从而删除版本库的文件
文件操作的撤回
git checkout --file_name 
#让文件回到最近一次[git commit]或[git add]时的状态,本质是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除都可以“一键还原”。
git reset HEAD和git rm --cached <filename>
#将文件从暂存区里删除
版本回退(版本库恢复)
git reset --hard HEAD^ #快捷回退
git reset --hard commit_id #回退到指定commit_id的版本
git log #查看提交历史,以便回退到哪个版本
git reflog #查看命令历史,以便要回到未来的哪个版本

总结来说Git就是在一个仓库(文件目录)里管理文件历史的工具。

分支管理(Git的优势)

分支的概念

Git是一个管理文件历史记录的系统,那么在此系统下的每一次commit都将生成一个新结点,这个结点中保存了版本库的快照,所有的结点以树的形式扩展,每个结点都有指向父结点的指针,而分支就是从某个父结点引出的枝条。其中master指向主分支最新结点的指针、HEAD为指向当前结点的指针。

结点内容

主分支结构(分支是链状而所有分支组成的整体是树状)

分支有关的操作

分支的创建:创建一个新的分支指针指向主分支最新的结点,新分支产生新结点后由分支指针指示。

git branch testing #新建分支
git branch -d testing #删除该分支
git branch -D testing #先合并分支再删除该分支
git checkout –b testing #创建+切换分支
git branch -a #查看所有分支

分支切换:更改HEAD指针

git checkout testing #分支切换

在新的分支下进行commit

分支合并:将其他分支的内容合并到当前所在的分支上来。

git merge testing #将testing分支合并到master上

分支合并冲突时需要手动修改起冲突的文件并提交。

远程仓库的使用

远程仓库配置

第一步:可以自己通过gitlab搭建也是使用大型代码托管平台(github、gitee)创建远程仓库

第二步:获取并配置SSH Key密钥

ssh-keygen -t rsa -C "youremail@example.com"
#使用自己的邮箱号创建密钥,将获得id_rsa(私钥)和id_rsa.pub(公钥)两个文件,将id_rsa.pub文件用于远程仓库的加密

第三步:将本地仓库和远程仓库关联

git remote add origin git@github.com:_buzhi/test.git 
#"github.com:_buzhi/test.git"是远程仓库的目录地址,远程库默认叫origin
在本地操作远程仓库
git clone git@github.com:_buzhi/test.git  #克隆一个远程仓库
git push -u origin master:master #将本地仓库主分支内容推送到远程仓库主分支上
git push -u <远程仓库名> <本地分支名>:<远程分支名> #使用-u后下次同样的命令就可直接使用git push代替
git fetch origin master:temp #抓取远程仓库的master分支作为本地仓库主分支的一个temp分支
git fetch <远程仓库名> <远程分支名>:<本地分支名>
git pull <远程仓库名> <远程分支名>:<本地分支名> #fetch和merge的结合
git remote rm <name> #删除与远程仓库的关联
git remote -v #查看远程仓库的信息

参考链接:

[Git官方文档]  http:// https://git-scm.com/doc

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值