git 常用操作汇总
说明(默认在master分支、远程分支origin, 省略分支名称)
gitRebase.png-
配置本地信息
git cogfig --global user.name userName
git config --global user.email userEmail -
克隆远程仓库
git clone remotePath
如:git clone https://github.com/yourname/test.git -
本地推送到远程仓库
git remote add origin remotePath [绑定远程仓库]
git push -u origin master [推送到远程master分支] -
本地提交
git status [显示工作区变更]
git add finePath [把单个文件添加到暂存区]
git commit -m "log" [提交到本地分支]
git commit -am "log" [提交到本地分支,包含add操作] -
显示文件修改
git diff finePath [工作区文件与暂存区文件对比]
git diff finePath --cached [暂存区文件与当前版本文件对比]
参考:https://www.jianshu.com/p/80542dc3164e -
本地分支处理
git branch -a [显示本地所有分支]
git checkout -b newBranch [开发新功能的时候,开启新分支]
git checkout branchWhichHas [切换到已存在分支] -
合并分支操作:
git checkout -b B [建立分支B]
......开发新功能 并提交
git checkout master [切换到master分支]
git merge B [在master分支中把B分支更新合并过来] -
本地变基
git rebase B [把B分支中的修改以变基的方式合并到master分支中,以当前分支为基底,把B分支的修改逐一提交到当前分支]
注意点:变基能把提交历史记录变得清晰,便于管理和维护。但要遵守原则:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行变基操作。因为变基修改推送到远程,别人同步后,会认为是一个新的提交,实际上内容没有变化。然后他需要合并这个提交才能继续开发,合并后会存在两份相同的提交历史。这个合并推送到服务器,会导致其他开发者不必要的疑惑。
详细说明:https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E5%8F%98%E5%9F%BA -
本地撤销操作
git checkout -- filePath [工作区撤销单个文件修改]
git checkout commitId finePath [单个文件回滚]
git reset HEAD finePath [暂存区撤销单个文件修改]
git reset HEAD --hard commitid [本地回滚到版本号为commitid]
git push origin HEAD --force [同步回滚远程版本] -
如果不小心把问题代码同步到了远程,为了不影响其他人开发,可考虑强制回滚代码。
git reset HEAD commitID [1.本地问题版本先回滚 ]
git push -f 或者 git push --force [2.把本地代码强制同步远程]
或
git revert [撤销上一次提交]
或
如果要回滚到较远的版本,比较暴力的方法:拉取一份新副本,手动把改动的新代码覆盖到新副本并提交。
参考:
https://blog.csdn.net/fuchaosz/article/details/52170105 -
对于单次commit操作的再修改
可以继续add 文件 并执行git commit --amend [合并上次提交为本次提交] -
冲突处理
修改冲突文件后再次执行add、commit操作 -
log 查询
git log
git log --pretty=oneline [单行显示log信息]
更多用法:https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2