Git指令
Git Scene
命令
仓库管理
git init
:创建新的git仓库,完成初始化git clone /path/to/repository
:创建本地仓库的克隆版本git clone username@host:/path/to/repository
:克隆远端仓库到本地git clone -b [BRANCH_NAME] [username@host]
: 克隆远程仓库的某个分支到本地git remote add origin <server>
:将仓库连接到某个远程服务器- 本地仓库的由git维护的三部分组成
- 工作目录:持有实际的文件
- 暂存区(Index):相当于缓存区,临时保存改动
- HEAD:指向最后一次提交的成果
git log
:查看日志git reflog
:查看仓库的操作历史
更改管理
git status
:查看仓库状态git add <filename>
/git add *
:提交更改(将文件添加到缓存区)git commit -m "代码提交信息"
:实际提交改动,提交到HEAD,但还没到远端仓库git push [REMOTE] [BRANCH]
:将改动提交到远程仓库的分支git diff <source_branch> <target_branch>
/git diff [FILENAME]
:在合并改动前,预览差异git fetch
:将代码更新到Local Repository,需要merge一次到workspacegit pull
:在本地的工作目录中***获取(fetch)并合并(merge)***远端的最新改动git add -i
:交互式添加文件到暂存区
分支管理
git branch
:查看当前分支git branch -r
/git branch -a
:查看所有分支git branch [BRANCH_NAME]
:直接新建分支git branch -d [BRANCH_NAME]
:删除分支(已经合并到master)git branch -D [BRANCH_NAME]
:强制删除分支(该分支未合并到master)git checkout -b [BRANCH_NAME]
:新建分支,并切换过去git checkout [BRANCH_NAME]
:切换分支git push origin [BRANCH_NAME]
:将分支推送到远程仓库git merge [BRANCH_NAME]
:将其他分支合并到当前分支
回退管理
git reset --hard HEAD^
:回退到上一个版本(HEAD代表当前版本, 有一个^代表回退到上一个版本,以此类推)git reset --hard d7b5
:回退到指定版本(其中d7b5为指定版本号的前几位)
Others
gitk
:内建的图形化gitgit config color.ui true
:彩色的git输出git config format.pretty oneline
:显示历史提交记录时,每个提交的信息只显示一行
Git Flow
Git Flow
- 它是在 Git branch 的基础上实现了一套简单的功能模块化开发流程,主要思想是把分支分成了上下游几个层级,然后通过一套命令行工具进行维护。
- master分支:与线上版本保持一致,当发生线上问题后可以很轻松地修复
- develop分支:功能开发基线分支,功能开发完成之后合并到上面,所有功能开发完毕后经过测试上线,然后合并回master
- feature功能开发分支:从develop上拆分,也需要把develop地更新merge回来,以和上游的分支保持一致,等功能开发完毕之后,即可合并到develop。通过和上游的分支保持一致,可以避免误删别人的代码,所有代码冲突必须在下游分支修好,测试完毕后可合并到上游分支。
- hotfix热修复分支:主要用于线上bug修复,但是修复后应该同时合并到master和develop两个分支上。-
命令
git flow init
:初始化 git flow 分支模型git flow feature start [NAME]
:开始一个功能分支git flow feature finish [NAME]
:将功能分支合并进 developgit flow hotfix start [NAME]
:开始一个热修复分支git flow hotfix finish [NAME]
:将补丁合并进 develop 和 mastergit flow release [NAME]
:发布一个新版本,打 tag