git reflog
遇到的协作问题
git 怎么只在自己的机器中exclude一个已经commit过的文件?
git rm —cached
就是config.json数据库配置文件,自己本地的密码不一样,应该只在自己本地修改不提交
放在 gitignore 里
然后 git rm --cached -r .
在feature上工作已经提交代码,但是比线上master分支落后,需要和master保持一致,
merge也可以实现但是会产生一条merge记录,显得很愚蠢。
正确流程git pull origin master –rebase
之后本地是最新版本,直接push —force
就行。
git pull origin master —rebase
git rebase develop / git rebase origin develop
区别是进入vim 模式,加-i可以去掉rebase 的 message
vim 操作 (dd 删除
V+⬆️⬇️选择
X 删除
insert+内容
:wq保存退出)
这里注意有时候会出现多次冲突,修改完
git add ___
git rebase –continue
git log
git push –force origin
操作出现问题:rebase后,我feature分支上出现2个未pull,3个未push,然后先git pull,再git push—force
会将之前两个改动再提交一次,如下图所示
解决:git revert也会产生一条记录,是提交一个新的版本,将需要revert的版本的内容再反向修改回去 X 洁癖者不适用
git reset –hard cccfb44
git push –force origin
或者git rebase -I
Git 常见命令整理
新建feature:–api
git commit -m ""
git push
git pull
git clone
切换分支git checkout feature/linkman_api
已经提交的代码中,有些改动要调换到其他分支中去
可以用git reset 命令
先提交需要提交当前分支的信息
切换分支再提及
切换分支提交剩下的部分
关于 git 的 cherry pick 操作
可以将其他分支的当前commit直接提交到当前所在分支上
eg:当前所在分支是center,需要将feature/agent-discountRate的最新一条commit内容提交到center分支