git remote add origin git@github.com:feicongcong/project.git 本地仓库关联远程仓库
git push -u origin master 本地库的所有内容推送到远程库上
分支管理(从dev分支切换到master分支会把dev分支上修改的东西带过来,解决:切换分支之前,确保当前分支没有未提交commit的修改)
git branch dev 从当前分支上创建dev分支(git checkout -b dev创建并切换到dev分支)
git checkout dev 切换到dev分支
git merge dev 指定dev分支合并到当前分支
git branch -d dev 删除dev分支
强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git merge --no-ff -m "merge with no-ff" dev
git log --graph --pretty=oneline --abbrev-commit
bug分支
当前正在dev分支开发,git status 将工作区的修改暂存起来,让工作区和版本区一致
此时创建bug分支,修复bug
切回dev分支
git stash list 查看暂存列表
git stash apply stash@{0} 把暂存恢复到工作现场,但需要git stash drop stash@{0}来删除暂存
git stash pop stash@{0},恢复的同时把stash内容也删了
从dev分支上创建出feature分支。feature分支已提交,但未合并到dev时,试图删除feature分支
$ git branch -d feature-vulcan
error: The branch 'feature-vulcan' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature-vulcan'.
销毁失败。Git友情提醒,feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D参数。。
现在我们强行删除:
$ git branch -D feature-vulcan
Deleted branch feature-vulcan (was 287773e).
推送分支
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
git push origin master
git push origin dev
抓取分支
远程仓库的默认名称是origin
git checkout -b dev origin/dev 从origin的dev分支拉取代码,本地创建dev分支
git pull
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
git branch -a 查看远程分支