分区
Branch 操作
分支操作
git checkout -b dev #创建并切换分支 git branch dev #创建分支 git checkout dev #切换分支 git branch #查看当前分支 当前分支前面有* git add "file name" #修改提交 git commit -m "branch test" git merge dev #dev与当前分支合并 git branch -d dev #删除分支 git status #查看合并冲突文件 git log #查看分支合并情况 #图示分支合并过程 git log --graph --pretty=oneline --abbrev-commit
Fast Forward Merge
options: –ff –no-ff –ff-only Specifies how a merge is handled when the merged-in history is already a descendant of the current history.
--ff
is the default unless merging an annotated (and possibly signed) tag that is not stored in its natural place in therefs/tags/
hierarchy, in which case--no-ff
is assumed.With
--ff
, when possible resolve the merge as a fast-forward (only update the branch pointer to match the merged branch; do not create a merge commit). When not possible (when the merged-in history is not a descendant of the current history), create a merge commit.With
--no-ff
, create a merge commit in all cases, even when the merge could instead be resolved as a fast-forward.With
--ff-only
, resolve the merge as a fast-forward when possible. When not possible, refuse to merge and exit with a non-zero status.- 常见分支命名策略
- master稳定分支
- dev不稳定分支
- name如Bob,Michael等
- 恢复操作
git stash #工作现场存储
git stash apply #现场恢复
git stash drop #删除现场文件
git stash pop #恢复现场并删除存储的现场文件工作现场存储
git stash list #stash many times并查看保存的多个现场
git stash spply stash@{0} #恢复某版本现场
workspace
在工作区内,可以直接增加修改源代码
Repository
- stage:暂存区
- branch:分支
git add . #将所有修改加入暂存区
git commit -m "git track changes" #将所有修改提交分支
git status #查看暂存区状态,未提交文件等
git diff HEAD -- readme.txt #查看当前工作区与版本库区别
反馈种类
- Changes not staged for commit:文件修改过未放入暂存区
- Untracked files:新建文件未被添加
- Changes to be commit:暂存区还未加入分支的文件
- working directory clean:工作区清空/工作区与版本库相同
fork
在开源项目中点击fork,该项目便会拷贝一份到你的respositories中,可以通过clone将你的respositories中的代码下载到本地进行二次开发。默认远程的别名为origin,此为我们自己项目中的版本,并非原始作者的代码库。为了方便区分,我们可以为原始代码库创建别名。
为代码库添加别名
git remote add upstream git://github.com/user_name/proj_name.git
git fetch upstream #设定别名为upstream
追踪原始代码
git push origin master #提交代码更新到自己的代码库
git fetch upstream #获取原始代码库的更新
git merge upstream/master #自己的代码合并到原始代码库中
pull request
pull request:将自己的代码发给到原始代码库作者
Git Page
- Follow:在你的dashboard提示被follow用户动态
- Watch:你可以在dashboard上看到被watch项目更新
- Compare & pull request:将你fork的代码修改后,可以对比源项目代码,然后将你的修改提交源作者
- Issues:在你与别人合作开发过程中,发现,可以帮你keep track of problems,就是在你的分支上发现问题,然后可以看别人分支上对相关问题的修改
- Star Page:可以看到你赞(star)过的项目
Push
本地可以多次commit,一次性push到远程服务器上,服务器上同样可以查看本地的多次commit记录。
例如,休假时离线开发三天时,每天commit,第四天回公司上线push所有修改。GitHub的记录中,前三天的commit同样会被保存。