前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >版本管理-Git

版本管理-Git

作者头像
小简
发布2023-01-04 14:20:28
1.9K0
发布2023-01-04 14:20:28
举报
文章被收录于专栏:简言之

一直只会常用的那几个 Git 命令,每次遇到不会的操作都是现去Google,十分不方便,今个得空咋就仔仔细细的学习学习 Git !

Git简介

Git是目前世界上最先进的分布式版本控制系统。

工作流程

工作流程
工作流程
  • 工作区:你在电脑里能看到的目录。
  • 暂存区:准备进行版本保存的文件列表。
  • 本地仓库:完成版本保存的文件列表。
  • 远程仓库:例如:自己的GitHub仓库、码云仓库。
  • 提交流程为:工作区➤暂存区➤本地仓库➤远程仓库

专有名词

  • master:默认开发分支(最新版本的名字)
  • origin:给远程仓库地址起别名的常用名字(http方式)
  • origin_ssh:给远程仓库地址起别名的常用名字(ssh免密方式)
  • HEAD:当前所在的版本(在分支操作时,也叫没有命名的分支)
  • HEAD^ :上一个版本
  • HEAD^^ :上上个版本
  • HEAD~n:前n个版本

配置用户信息

全局配置

代码语言:javascript
复制
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

单独配置

代码语言:javascript
复制
#对某个项目想单独配置信息可以使用
git config user.name "Your Name" 
git config user.email "email@example.com"

查看配置

代码语言:javascript
复制
git config --global user.name #查看配置的全局名字
git config --global user.email #查看配置的全局邮箱地址
git config --list #查看当前项目的git配置信息(会先列出全局配置,最下面列出的是当前项目的配置)整页翻页 ctrl-f(往前翻) ctrl-b(往后翻)

仓库的创建与提交

创建仓库

代码语言:javascript
复制
git init

提交文件

代码语言:javascript
复制
#第一步:把文件添加到暂存区
git add <file> #添加单个文件
git add .      #添加所有文件

#第二步,把暂存区文件提交到本地仓库
git commit -m <message>

例子:新建learngit文件夹,并将该文件夹初始化为Git仓库,再向仓库中添加一个test.txt文件

代码语言:javascript
复制
mkdir learngit
cd learngit
git init

vim test.txt
git add test.txt
git commit -m "add a test file"

版本回退(回到过去)

软回退

将当前分⽀回滚到指定版本,保持⼯作区和暂存区状态不变。

代码语言:javascript
复制
git reset --soft HEAD^  #回退到上一个版本

git reset --soft HEAD~n #回退到前n个版本

git reset --soft <commit id> #回退到指定版本,id可通过git log查看

混合回退

将当前分⽀回滚到指定版本,清除暂存区的修改,但保持⼯作区状态不变。

代码语言:javascript
复制
git reset HEAD^  #回退到上一个版本

git reset HEAD~n #回退到前n个版本

git reset  <commit id> #回退到指定版本,id可通过git log查看

强制回退

将当前分⽀回滚到指定版本,清除暂存区的修改,并强制删除所有⼯作区的修改

代码语言:javascript
复制
git reset --hard HEAD^  #回退到上一个版本

git reset --hard HEAD~n #回退到前n个版本

git reset --hard <commit id> #回退到指定版本,id可通过git log查看

回退取消(重返未来)

现在,你回退到了某个版本,关掉了电脑(无法使用git log 查看到回退前的commit id),第二天早上就后悔了,想恢复到回退前的版本怎么办?但是找不到回退前版本的commit id怎么办?

代码语言:javascript
复制
git reflog #查看所有的历史命令,获取你想要回到的版本id,

git reset --hard <commit id> #回退到该版本

分支管理(平行宇宙)

分支简介

Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点

初始分支
初始分支

Git新建一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev

新建分支
新建分支

对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变

新分支开发
新分支开发

假如我们在dev上的工作完成了,就可以把dev合并到master上。就是直接把master指向dev的当前提交,就完成了合并

合并分支
合并分支

合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支

删除分支
删除分支

创建分支

代码语言:javascript
复制
git branch [branch_name]

切换分支

代码语言:javascript
复制
git checkout [branch_name]

git switch [branch_name]

创建并切换

代码语言:javascript
复制
git checkout -b [branch_name]

git switch -c [branch_name]

合并分支

代码语言:javascript
复制
git merge [branch_name] #用于合并指定分支到当前分支

删除分支

代码语言:javascript
复制
git branch -d [branch_name]

查看分支

代码语言:javascript
复制
git branch -vv #查看当前开发分支(当前分支前面会标一个*号)
git branch #查看本地所有分支
git branch -r #查看远程所有分支
git branch -a #查看本地和远程所有分支

查看提交历史

代码语言:javascript
复制
git log  #查看历史提交记录
git log --pretty=oneline #查看简洁版历史提交记录
git log --graph #查看历史提交记录拓扑图
git log -p <file> #指定文件的历史提交记录
git blame <file> #查看指定文件的历史修改记录

更多 git log 命令可查看:http://git-scm.com/docs/git-log

一些常用命令

代码语言:javascript
复制
git status  #查看项目文件此时的状态(在工作区、缓存区还是在仓库中)

git reflog #查看所有的历史命令

git remote -v #查看远程仓库地址

git diff #⽐较⼯作区和暂存区的修改

git diff HEAD #⽐较⼯作区和上⼀次commit后的修改。 

git diff --cached #⽐较暂存区和上⼀次commit后的修改。

SourceTree

一款用于Windows和Mac的免费Git可视化管理工具。

详细用法可参考:

git的GUI工具Sourcetree使用及命令行对比

Git/SourceTree版本管理_bilibili

Reference

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git简介
    • 工作流程
      • 专有名词
      • 配置用户信息
        • 全局配置
          • 单独配置
            • 查看配置
            • 仓库的创建与提交
              • 创建仓库
                • 提交文件
                • 版本回退(回到过去)
                  • 软回退
                    • 混合回退
                      • 强制回退
                      • 回退取消(重返未来)
                      • 分支管理(平行宇宙)
                        • 分支简介
                          • 创建分支
                            • 切换分支
                              • 创建并切换
                                • 合并分支
                                  • 删除分支
                                    • 查看分支
                                    • 查看提交历史
                                    • 一些常用命令
                                    • SourceTree
                                    • Reference
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档