0

当工作遇到GIT,看这篇就够了!

 3 years ago
source link: https://segmentfault.com/a/1190000040450097
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

image.png

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

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

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

git clone && git init

本地初始化一个Git仓库
image.png
与从远程拉取到本地一个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 stash
git stash apply|pop
git list

最后,根据上述描述的工作中经常遇到的场景给出一张流程图。
image.png

感谢你看到这里,希望本篇文章可以帮助到你,谢谢!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK