Git Cheatsheet
Mar 25, 2019 · 3 分钟阅读

初始化:

❯ git init

gra 添加远程仓库:

❯ git remote add origin git@github.com:RyunPu/learn-git.git

根据需要添加远程仓库,git@github.com:RyunPu/learn-git.git 应该是你自己的仓库地址

glog 查看提交历史:

❯ git log --oneline --decorate --graph

gst 查看当前状态:

❯ git status

添加一个新文件,使用 ga 将文件添加到暂存区:

❯ git add README.md

使用 git add . 来添加所有文件

gcmsg 提交文件:

❯ git commit -m 'touch README.md'

文件在暂存区时,修改文件后,使用 gcam 提交文件:

❯ git commit -a -m 'modify README.md'

gp 第一次关联并上传到远程仓库:

❯ git push --set-upstream origin master

以后的上传可以直接使用 git push

gl 将代码从远程仓库取到本地:

❯ git pull

gb 创建分支 develop:

❯ git branch develop

gco 切换到分支 develop:

❯ git checkout develop

gcm 切换回 master:

❯ git checkout master

gbd 删除分支 develop:

❯ git branch -d develop

使用 git push origin -d develop 可以删除远程仓库的分支

gcb 创建分支 develop 并切换到 develop:

❯ git checkout -b develop

做些更改,使用 gp 将分支 develop 上传到远程仓库:

❯ git push origin develop

gcm 切换回 master,使用 gm 合并 develop:

❯ git checkout master
❯ git merge develop

merge 的过程中可能需要解决冲突,使用 git merge --abort 可以放弃此次合并

gsh 查看某个提交:

❯ git show 3855451

3855451 是对提交的引用,可以通过前面的 glog 来查看,当然你也可以通过 HEAD~1 这样的形式来引用

gd 比对某个提交:

❯ git diff 3855451

grb 在新位置重新提交:

❯ git checkout develop
❯ git rebase master

然后 git checkout master && git merge develop

gc! 修复当前提交:

❯ git commit -v --amend

使用 gcn!git commit -v --no-edit --amend 来使用上次的提交信息
或者 gcan!git commit -v -a --no-edit --amend

grbi 开启交互式 rebase 过程

❯ git rebase -i e0f28ff

上面的命令表示 rebase e0f28ff 及之前的提交到当前,执行结果如下:

pick bfd724f hello from develop and master

# Rebase e0f28ff..bfd724f onto e0f28ff (1 command)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
...

然后将上面内容中的引用 bfd724f 前的 pick 改为 edit:

edit bfd724f hello from develop and master

更多命令可以查看输出内容的 Commands 部分

完成修改后,使用 grbc 继续:

❯ git commit -v -a --no-edit --amend
❯ git rebase --continue

使用 git rebase --abort 可以放弃此次 rebase

grhh 撤销某个的提交之前的更改或提交:

❯ git reset --hard 5597026

使用用交互式 rebase 撤销提交:

❯ git rebase -i 5597026
pick 39f0eaf hello again

# Rebase e0f28ff..bfd724f onto e0f28ff (1 command)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
...

然后将上面内容中的引用 39f0eaf 前的 pick 改为 drop:

drop 39f0eaf hello again

保存退出后,39f0eaf 就不存在了

grev 反转某个提交:

❯ git revert f7cad2f

revert 将某个提交恢复提交之前的状态,作为一个新的提交,与原来的提交并存

gstall 临时存放工作目录的改动

❯ git stash --all

gstp 取出之前存放的改动

❯ git stash pop

reflog 引用记录:

❯ git reflog
5961845 (HEAD -> master) HEAD@{0}: reset: moving to HEAD
5961845 (HEAD -> master) HEAD@{1}: checkout: moving from f7cad2f793ac794b07da61ed91eef364b6e406bf to master
f7cad2f HEAD@{2}: checkout: moving from master to f7cad2f

误删某个提交后,可尝试从 reflog 中找回,然后 git checkout f7cad2f,然后根据需要操作

← Previous Post

Ryun的博客
与其感慨路难行,不如马上出发。

atom css design git html javascript jekyll laravel life mac mobile optimization sublime tool vscode vue
mac

About

你好,❤朋友

这里是 Ryun 的博客 📝

📝记录了我学习 🔎的过程

作为一名前端攻城狮 🦁

希望能和大家一起 🔎

共同进步 🏃

🦁的特长:

  • HTML5
  • CSS3
  • JavaScript
  • Vue.js
  • 微信小程序
  • 熟练配合 Node.js、PHP 和 Laravel
  • 熟练使用各种开发和设计工具

🦁喜欢 🆒🆒的东西

对提升效率和美感的事物有兴趣 😋

欢迎 👏交流


see this hugo-theme-dream-ink