git仓库管理基础知识
文章目录
- git仓库管理基础知识
- git 简介
- git的世界观
- git工作流程
- git的基本操作
git 简介
git是用来进行分布式多版本管理的版本管理系统,而常用的SVN则是集中式的版本管理软件。
- 集中式版本控制系统需要找一个服务器作为大本营,所有的代码都需要提交到服务器上进行统一的管理。当你需要对代码进行改动时,需要先从服务器上下载一份拷贝,修改完成之后,还需要上传回服务器。
- 在分布式版本控制系统中,大家都拥有一个完整的版本库,不需要联网也可以提交修改。
- 参考连接:https://fishc.com.cn/thread-71107-1-1.html
git的世界观
本地仓库有 Git 维护的三棵“树”组成,这是 Git 的核心框架。这三棵树分别是:工作区域、暂存区域和Git 仓库。
工作区域(Working Directory就是你平时存放项目代码的地方。
暂存区域(Stage用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息,一般存放在 .git 目录下的 index 文件(.git/index)中。
Git 仓库(Repository就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中,HEAD 指向最新放入仓库的版本(这第三棵树,确切的说,应该是 Git 仓库中 HEAD 指向的版本)。
Git 的工作流程一般是:
在工作目录中添加、修改文件;
将需要进行版本管理的文件放入暂存区域;
将暂存区域的文件提交到 Git 仓库。
因此,Git 管理的文件有三种状态:已修改(modified)、已暂存(staged)和已提交(committed),依次对应上边的每一个流程。
git工作流程
git的基本操作
1.创建仓库
git init
Git 使用 git init 命令来初始化一个 Git 仓库。初始化完成后,会在当前目录生成一个 .git 目录。所有 Git 需要的数据和资源都存放在这个目录中。
git clone
主要用来拷贝一份远程仓库,也就是下载一个项目。
2、git配置
设置提交代码时的用户信息:
$ git config --global user.name "niewei" $ git config --global user.email "314554635@qq.com"
显示当前的 git 配置信息:
$ git config --list
完成上述两个操作后,主要的操作流程有以下部分。
workspace
:工作区staging area
:暂存区/缓存区local repository
:版本库或本地仓库remote repository
:远程仓库
3.git add添加到缓存区
添加一个或多个文件到暂存区:git add [file1] [file2] ...
添加指定目录到暂存区,包括子目录:git add [dir]
添加当前目录下的所有文件到暂存区:git add .
4.git commit暂存区内容添加到仓库
commit提交暂存区到本地仓库。
提交暂存区到本地仓库中:git commit -m [message]
[message] 可以是一些备注信息。
提交暂存区的指定文件到仓库区:$ git commit [file1] [file2] ... -m [message]
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交$ git commit -a
每次执行一次commit
,每次只要使用commit
命令,就相当于产生了一个历史版本。commit
指的是将缓存区的内容提交到仓库,目的为了保证本地的文本和仓库之间的同步。
5.添加远程仓库
第一步:创建github账号
第二步:将本地仓库和远程仓库连接起来
1>生成ssh key 【建立了本机和远程服务器之间的连接】
ssh-keygen -t rsa -C "314554635@qq.com"
2>验证ssh key是否添加成功
`ssh -T git@github.com`
第三步:在github中创建空远程仓库 添加远程版本库: `git remote add [shortname] [url] git remote add origin git@github.com:tianqixin/runoob-git-test.git`
origin表示的是远程仓库中的主分支,对应的是本地仓库中的master,origin可以是别的名称,但是建议使用origin。git remote rm name # 删除远程仓库 git remote rename old_name new_name # 修改仓库名 git remote show [remote] #显示某个远程仓库的信息
6.本地与远程库同步
以下命令将本地的 master 分支推送到 origin 主机的 master 分支。git push origin master
git push <远程主机名> <本地分支名>:<远程分支名>
删除主机的分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支:git push origin --delete master
7.分支管理
列出分支基本命令:git branch
创建一个分支:git branch (branchname)
切换分支命令:git checkout (branchname)
删除分支命令:git branch -d (branchname)
合并分支命令:git merge testing
8.回滚旧版本
回退到上一个版本 git reset --hard HEAD^
回到某个具体的版本git reset --hard commitid
回到未来的版本 git reset --hard 未来的commitid
果不知道版本号,可以通过以下查询 git reflog
查看提交日志git log