git init //仓库初始化
git branch //查看分支
git status //查看当前工作和暂存区的状态
git remote add origin 地址 //添加远程服务仓库的地址
git remote remove origin //移除远程服务地址
git checkout -b 分支名 //创建新分支并切换到该新分支
=== git branch 分支名 -> git checkout 分支名
=== git checkout -b 本地分支名 origin/远程分支名 //新建分支,并与远程分支相关联
git branch -d 分支 //删除分支(没有合并到主分支会有提醒)
git branch -D 分支 //强行删除,即使没有合并分支
git push (-u) origin master //推送master主分支到远程,首次推送加上-u代表下次再次推送到该远程分支master可以直接使用git push命令
git clone 远程服务 分支 本地分支 //服务地址以.git结尾,默认本地和服务分支名一致(git clone ssh://.../**.git)
git merge 分支名(例:dev1) //把dev1 合并到当前所在的分支上, 合并前要确认当前的分支是否正确,或者gitcheckout 切换一下分支 在进行合并 注:历史纪录中查不到合并的信息
git merge --no-ff -m"合并备注信息" 分支名 //这里会创建一个合并的commit,这样可以在开发记录中查看合并的信息
(例:git merge --no-ff -m"修改样式" issue#111)
git log --graph --pretty=oneline --abbrev-commit //以一行信息查看分支commit情况git push origin :test //删除本地分支后然后push到远程,删除远程的分支
git remote
git remote -v //查看远程库的信息
git stash //保存当前修改文件到工作栈中,以便切换分支修改紧急bug,不至于丢失当前已工作内容
git stash list //查看工作栈的列表
git stash pop //恢复工作现场
=== git stash apply (stash@{0} 第几个现场栈) -> git stash drop (例: git stash apply stash@{1} )
git push origin 分支名 //推送分支到远程
git checkout -b dev origin/dev //在本地创建与远程仓库dev对应的dev 分支
git branch --set-upstream dev origin/dev //本地分支dev建立与远程dev关联
git mv file1 file2 //移动或重命名文件file1到file2 ,然后commit,最后推送
git fetch origin master:tmp //抓取远程的master分支到本地的tmp分支
git diff tmp //查看不同处,有冲突时手动改动
git merge //合并分支
git pull origin 远程分支名 // 拉取远程服务分支的最新代码(git pull origin develop, git pull origin master)
git fetch origin 远程分支名
git reset (--soft) commitid //回退到这个commit,撤销前一个commit,并保存修改状态,(--soft可不加,默认为soft; --hard 取消回退点后所有commit点,且不保留已修改的内容,也就是回退到这个点,在这之后做的都是无用功,用法示例:git reset 123414a, git reset --hard 3535f4s 注:使用hard慎重)
git reset 某个文件 //从已暂存文件 变为修改文件
git fetch -p //删除没有于远程分支对应的本地分支
git branch -m devel develop //重命名本地分支devel->develop
git push --delete origin 分支2 //删除远程分支2
git push origin 分支 -f //-f参数,这个参数用于强制推送本地更新到远程仓库,重新提交所有的commit
git commit --amend -m "now correct" //修改最后提交的内容
git reflog
git blame 文件路径 // 查看某个文件的历史提交记录(例:git blame app/scripts/directives/aa.js)
git commit --amend //修改最新一次的commit备注信息
2.git rebase 重新定义基准
git rebase --onto 新的基准commitID 当前的基准commitID点 //(git rebase --onto 123456f 1111231)
注:嫁接时有冲突的首先手动解决冲突,然后add,commit 然后再 git rebase --continue继续
git rebase --continue // 解决冲突后 继续更改基准点
git rebase -- abort // 取消更改基准点
git rebase -i 提交节点(当前没有问题的点)进入了编辑模式,可以决定保留哪些节点
(reword 修改提交备注;
pick 什么也不动;
edit 修改提交内容
squash 和前一条合并保留当前的提交备注;
fixup和前一条合并保留前一条的提交备注,舍弃当前的备注 )
3.git-flow
git flow init //构建模型(一定要记住指定远程 master和远程开发分支名Branch name for "next release"development: [dev], 代表当前dev为开发分支名)
git flow feature start f1 // f1 代表新建的分支名2.发布上线 release (dev衍生分支)
............中间一系列的git add */文件名 , git commit -m "" a1, 操作
git flow feature finish f1 // 完成f1分支新功能的开发,将代码合并到dev开发分支(即:删除f1切换到开发分支)
git flow release start v0.0.1
git flow releasefinish v0.0.1 (将dev代码合并到master上,此时dev和master代码同步)
3.紧急bug hotfix (master衍生分支,以master为基准的bug修复)
4. support (master衍生分支)git flow hotfix start issue#666
git flow hotfix finish issue#666: 依次切换master,develop合并修改
相关地址: