我正在参与掘金创作者训练营第5期,点击了解活动详情,一起学习吧!
概要: 本文从前端角度,介绍Git命令使用case, 欢迎更多分享学习~
项目开发背景:
- 所在前端项目组,属于业务组;
- 常基于core team开发的架构、公共组件开发。
- 每个业务组,需要fork code,然后提交merge master请求
项目之初
github fork 一份master
clone master
通过git clone github.com/master/webp… ,clone 下来 master 到本地
# check remote分支情况
> git remote -v
git 添加配置
git config user.email xx
git config user.name xx
添加自己远程分支
> git add remote username https://github.com/<user>/webpack-demo.git
# check remote 分支情况
> git remote -v
添加同事远程分支
> git add remote user2 https://github.com/<user2>/xxxx.git
# check remote 分支情况
> git remote -v
# 拉取同事分支,并本地切换
> git fetch user2 branch2:branch2 && git checkout branch2
# 还可以这样
> git checkout -b branch2 user2/branch2
项目coding
git pull
拉取远程分支更新
> git pull
提交历史太多,一次拉耗费时间太久
> git pull --depth=n(1,2,3...)
--depth虽然pull快,但是带来提交问题, 大概如下reject 问题
[remote rejected] master -> master (shallow update not allowed)
# 取消shallow update ,
git fetch --unshallow origin
# 重新git pull 即可
git pull
git checkout
切换分支
> git checkout
回到上一个使用的分支
> git checkout -
git add
添加所在目录下所有修改的文件,准备提交到本地暂存区
> git add .
添加所在目录下某些文件,准备提交到本地暂存区
> git add ./xxx/xx.js
git commit
把修改的文件提交到本地暂存区
> git commit -m "xxx"
git merge
进行master code合并
> git merge --no-ff master
git rebase
进行变基操作
> git rebase master
git stash
切换分支,但是又不想提交commit,暂存一下
> git stash
# 本地暂存,添加备注
> git stash save "xxx"
git stash pop
分支切换完毕,切换回来,把修改的文件重新run
# 查看本地暂存的所有
> git stash list
stash@{0}: xxx
stash@{1}: xxx
...
# 默认出栈中的第一个(下标0)
> git stash pop
# 弹出其他下标
> git stash pop {n}
code push
git status
查看当前哪些文件没有管理
> git status
git dif
查看文件哪些修改
> git diff xxx.js
git log
查看commit历史记录
> git log
简短的方式查看日志
> git log --pretty=short
git reset
提交记录太多,整合一下
# 拉去最新master code,并切换新分支
> git checkout master && git pull && git checkout -b fix-user-new-branch
# pull自己提交的code到新分支上
> git pull <user> fix-user-old-branch
# 把已提交的commit 记录整合到第一次提交的commitid
> git reset <commitid>
# 把历史commit都整合到一个commit里
> git add . && git commit -m "" && git push xx:xx
git reset --hard
本地有修改的文件,不想保留了,但是又不想一个个操作,批量重置
> git reset <commitId> --hard
git push
提交code 到远程分支, 并新建分支branch_one
> git push <user> branch_one:branch_one
code commit记录太多,本地整合后,重新提交
# -f 强制提交
> git push <user> branch_one:branch_one -f
git reflog
查看操作记录
> git reflog
code review
github 支持 add comments, 添加完毕,可以request change and resolve