代码里的后悔药——Git

代码里的后悔药—Git

1. 什么是Git

git是版本管理工具的一种,常见的版本管理工具还有CVSSVN等等。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件

2. 为什么要用Git

  • 分布式版本管理工具,容灾性较强
  • 强大的分支和合并功能
  • 支持多人协同开发

    3. Git和Github的关系

git是版本控制工具,而github则是一家以git作为唯一的版本库格式进行托管代码的托管平台,类似的托管平台还有gitlab码云gitee

4. Git的安装

git官网下载对应的版本(Linux和Mac用户可以使用自带的软件管理工具进行安装)

注:尽量不要使用git的GUI工具

5. Git的基本概念

  • 工作目录(Working Directory)

    工作目录就是能在电脑上能看到的目录

  • 暂存区

    暂存区又称缓存区,一般存放在项目文件夹的 .git目录下的index文件

  • 仓库

    仓库又称版本库,git有本地仓库和远程仓库(即用来托管代码的服务器)之分。本地仓库一般存放在项目文件夹的.git目录中

    工作区示意图

  • 分支

    分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

    一般项目中会有 主分支、开发分支、功能分支 等分支。Git非常鼓励使用分支。

    分支示意图

6. Git的工作流程

Git管理的文件有三种状态: 已修改(modified)、已暂存(staged)和已提交(commited)

1. 在工作目录中添加修改文件
2. 将需要进行版本管理的文件放入暂存区
3. 将暂存区的文件提交到git仓库

7. Git的基本命令

  • 初始化项目
1
git init
  • 添加文件到暂存区
1
git add 文件路径
  • 提交版本
1
git commit -m "log"
  • 版本回滚
1
2
3
git reset --hard commitId     # 回退到指定版本,或者
git reset --hard HEAD^ # 回退到上个版本
git reset --hard HEAD~n # 回退到前n个版本
  • 查看仓库当前状态
1
git status
  • 查看具体修改内容
1
git diff
  • 查看历史
1
2
git log      # 查看提交历史
git reflog # 查看命令历史
  • 撤销修改
1
2
git checkout -- file      # 撤销工作区中的修改
git reset HEAD file # 撤销暂存区中的修改 HEAD表示最新的版本
  • 删除文件
1
git rm file
  • 远程仓库操作
1
2
3
4
5
6
7
8
9
10
11
12
git remote add 名字 <repo address>      # 添加远程仓库
# 例如:
git remote add origin https://github.com/musistudio/MusicBox
git push name branch # 推送到远程仓库
# 例如:
git push -u origin master # -u参数会将本地的分支与远程的分支关联起来,origin代表提交到哪个仓库, master代表master分支
git clone <repo address> # 从远程库克隆
# 例如:
git clone https://github.com/musistudio/MusicBox
git remote -v # 查看远程库信息
git checkout -b name origin/name # 在本地创建和远程分支对应的分支
git branch --set-upstream name origin/name # 建立本地分支和远程分支的关联
  • 分支操作
1
2
3
4
5
6
7
8
9
10
11
git branch dev                 # 创建dev分支
git checkout dev # 切换到dev分支
# ==> 上面两条命令等同于下面一条命令
git branck checkout -b dev # -b 参数表示创建并切换
git branch # 查看分支
git merge dev # 合并指定分支(dev)到当前分支
git merge --no-ff -m "log" dev # 以普通模式合并分支,合并后有合并历史(禁用fast forward模式)
git branch -d dev # 删除指定分支(dev)
git branch -D dev # 丢弃没有合并的分支,使用-D强行删除
git log --graph # 查看分支合并图
git rebase # 把本地未push的分叉提交历史整理成直线,使在查看历史提交的变化更容易
  • 储存工作现场
1
mmitgit stash
  • 标签操作
1
2
3
4
5
6
7
8
git tag v1.0      # 给HEAD打一个v1,0的标签,也可以指定一个commit
git tag # 查看所有标签
git tag -a <tagname> -m "log" # 创建带有说明的标签
git show <tagname> # 查看标签的说明文字
git tag -d <tagname> # 删除本地标签
git push origin <tagname> # 向远程推送本地标签
git push origin --tags # 向远程推送所有未推送过的标签
git push origin :refs/tags/<tagname> # 删除远程标签
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • © 2019-2021 musi

请我喝杯咖啡吧~

支付宝
微信