前言

嗨喽,大家好,我是CrazyCodes, 明天咱们联合日常碰到的工作场景来解说GIT,文末附有精美流程图,须要请自取。

历史

从古至今,无论学个什么货色,都要先得聊聊其发源地。

  • Git 是一个开源的分布式版本控制系统,是Linux之父Linus为了帮忙治理Linux内核开发而开发的一个开放源码的版本控制软件。
  • GitHub 基于Git开发的软件我的项目托管平台。
  • GitLab 也是基于Git开发的软件我的项目托管平台,但其是开源的。

基本知识

git clone && git init

本地初始化一个Git仓库

与从近程拉取到本地一个Git仓库,实质上没有区别,在近程拉取仓库也须要先在近程建设仓库,其命令仍旧是git init

git目录

切换分支

.git/HEAD 用于记录以后所在分支,应用 git checkout branchName 是间接批改该文件

ref: refs/heads/master

某个分支的以后提交

.git/refs/heads

e6caa5bbcd4d362d3a5bac6b5a3417c15991484c

相似的查看某个标签的以后提交 .git/refs/tags

e6caa5bbcd4d362d3a5bac6b5a3417c15991484c

暂存区

git add filename 该动作内容保留在 .git/index 文件中

日志

.git/logs 保留所有日志 ,应用 git log 会查问该文件

常用命令

  • git add
  • git commit
  • git merge
  • git checkout
  • git diff
  • git status
  • git log

学习平台

https://learngitbranching.js....

利用场景

git blame 找出“真凶”

git blame filename

git checkout 回滚文件

git checkout filename

git add 如何勾销

git reset HEAD filename

git commit 如何勾销

git reset --soft HEAD~1// 从新批改commit信息git commit --amend

git merge 如何勾销

git merge --abort

不要自觉应用git add .

git status// 在将文件增加到缓存区之前,请肯定、肯定、肯定先git diff 下git diff// 查看所有批改都是想add的,如果所有批改都是的话,能够应用 git add . 除此之外还请谨慎呀!git add . || git add filename1 filename2

git rebase 变基 ==“换爹”?

git rebase branch

git cherry-pick 不留余地的“偷代码”

git cherry-pick hashcommit|branchname

加塞工作如何解决

git stashgit stash apply|popgit list

致谢

最初,根据上述形容的工作中常常遇到的场景,画的一张流程图。

感激你看到这里,心愿本篇文章能够帮忙到你,谢谢!