git checkout -b 创建分支并切换
git add
git commit
git push
git fetch
git merge
git rebase
git pull
HEAD 是指向某个分支的指针
分支是指向某个 commit 的指针
commit 是存储库的一个快照
workflow
开发新功能
master -> develop -> feat/some-feature
git checkout develop
git pull --rebase
git checkout -b feat/some-feat
推送
touch index.css
git add index.css
git commit -m 'feat: add some feature'
git pull --reabse
git push
测试发布
git branch -D t
git fetch -p
git checkout t
git merge origin/develop
git merge -
git push
git checkout -
正式发布 pr
git checkout develop
git pull --rebase
git checkout -
git reset --soft commitId
git add .
git commit -m 'feat: add some feature'
git rebase develop
回滚
git revert commitId
冲突
冲突原因: 不同commit在同一时间点后merge/rebase/cherry-pick对同一文件的同一行代码进行了不同的修改
撤销更改
git add .
git stash
git stash drop
tips
# 追加/修改commit信息
git commit --am
# 快速切换到上一个分支
git checkout -
# 获取指定分支/commit上的文件内容
git checkout commitHash/branchName -- dir/path/or/file/path
# 查看已删除文件的log记录
git log -- file/path
# 分支merge/rebase操作后,后悔了怎么办?
git reflog --all --date=iso
# 查看单行日志
git log --oneline
附录
链接
Tech Talk: Linus Torvalds on git
http://git-scm.com
https://github.com/git-guides/
http://git.oschina.net/progit/