Git全套详细知识讲解(安装、常用指令、分支管理、远程仓库)
Git的概述
什么是Git
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
实际运用场景
- 备份
- 代码还原
- 协同开发
- 追溯问题代码的编写人和编写时间
版本控制方式
-
集中式版本控制工具:版本库是集中放在中央服务器中,必须联网才能工作,个人修改后提交给中央版本库。比如:SVN和CVS
-
分布式版本控制工具:分布式版本控制系统没有“中央服务器”,每个人的电脑都是一个完整的版本库,不需要联网就可以工作,多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。比如:Git
优点
- 速度快
- 简单的设计
- 对非线性开发模式的强力支持
- 可以高效的管理Linux内核一样的超大规模项目
工作流程
命令:
-
clone(克隆):从远程仓库中克隆代码到本地仓库。fetch(抓取):从远程库,抓取到本地仓库,不进行任何合并动作(一般少很少用)
-
checkout(检出):从本地仓库中检出一个仓库分支如何进行修正
-
add(添加):在提交前先将代码提交到暂存区
-
commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
-
pull(拉取):从远程仓库拉到本地库,自动进行合并(merge),然后放在工作区,相当于fetch+merge
-
push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
Git的安装和常用命令
安装
下载地址:Git - Downloads (git-scm.com)
安装成功后鼠标右击后出现:
注:
- Git GUI:Git提供的图形界面工具
- Git Bash:Git提供的命令行工具
获取本地仓库
打开Git Bash创建一个新的git仓库: mkdir git-test01
在目录中执行 git init
就可以创建一个 Git 仓库了,这时候可以在文件夹中可以看到.git文件,但是.git文件默认是隐藏的,需要将将window设置显示隐藏的项目,如图:
基础操作指令
git add
: 工作区(workspace) --> 暂存区(index)git add .
:把所有项目提交到暂存区git branch
:查看分支git commit
: 暂存区(index) --> 本地仓库(repository)git commit -m “注释内容”
:提交暂存区到本地仓库git checkout
:切换分支git status
:查看修改的状态git log
:查看日志git reset --hard commitID
:版本回退git reflog
:这个指令可以查看已经删除的提交记录
git-log的配置:为了更好的查看日志,精简的方式看日志
在系统用户下创建一个.bashrc
文件 文件里面的内容:
//用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
//用于输出当前目录所有文件及基本信息
alias ll='ls -al'
然后打开git bush输入:source ~/.bashrc
配置成功后的效果图对比:git log 和 git-log
git的分支管理
几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
查看分支:git branch
添加一个分支:git branch 分支名
分支直观的展示:git-log
切换分支:git checkout 分支名
,其中HEAD表示的就是在当前的分支
添加分支并且切换到该分支:git checkout -b 分支名
合并分支
合并分支一般都是把其他分支添加到master上,所以首先需要切换到master分支
输入:git merge 分支名
当想删除分支的时候可以用指令:git branch -d 分支名
Git远程仓库
如果想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。一般用GitHub或者gitee、gitlab
创建远程程库
以gitee为例,创建一个仓库
配置SSH公钥
生成密钥
ssh-keygen -t rsa
然后不断回车,如果公钥已经存在会自动覆盖
获取密钥
cat ~/.ssh/id_rsa.pub
把生成的公钥粘贴到gitee
查看是否配置成功:ssh -T git@gitee.com
添加远程仓库
配置gitee为例:
添加远程仓库(origin后面跟上远程仓库的地址):
git remote add origin https://gitee.com/gao-bintao/git_test.git
查看是否添加成功:
git remote
推送到远程仓库
git push origin master
然后刷新gitee就可以看到上传的文件了
克隆(clone)
把远程的仓库克隆到本地仓库
git clone 项目的地址
抓取和拉取
抓取: git fetch [remote name] [branch name]
- 将仓库里的更新都抓取到本地,不会进行合并
- 如果不指定远程名称和分支名,则抓取所有分支
拉取:git pull [remote name] [branch name]
-
将远程仓库的修改拉到本地并自动进行合并,相当于fetch+merge
-
如果不指定远程名称和分支名,则抓取所有并更新当前分支
- 点赞
- 收藏
- 关注作者
评论(0)