我的学习记录来自于:廖老师的博客:https://www.liaoxuefeng.com/wiki/896043488029600
理论基础:
刚刚开始master分支是一条线,master指向最新的提交,HEAD指向master:
每次提交master就向前移动。
创建新的分支时,例如dev时,就新创建一个指针,指向与mater相同的提交,在把HEAD(总是指向当前分支)指向dev.
dev分支
现在每次提交,dev指针都向前移动一步,为master指针不变,
dev更新
当dev和master合并时,master指向dev的提交就行。
快速合并
然后删除dev指针,就只有master了。
操作
创建和切换到新的分支, - b表示创建新的分支
$ git checkout -b dev
也可以用两条命令:
先创建新的分支
再切换到新的分支
$git branch dev
$git checkout dev
查看当前分支,当前分之前有一个*
$git branch
合并:(快速合并,只有一个分支进行个更新,其他分支没有进行更新)
合并dev分支到master,先切回到master分支,在合并
$git merge dev
当两个以上的分支都发生修改时,合并会出错,必须先打开文进行手动合并,然后提交。
两分支都发生了变化
手动修改完再提交
可以查看分支合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
禁用快速合并的命令
$ git merge --no-ff -m "merge with no-ff" dev
保存当前工作状态,等以后继续使用
$ git stash
查看保存的状态
$ git stash list
恢复状态的两种方式:
第一,先回复状态,然后删除stash的内容
(可以回复指定的 git stash apply stash@{0})
$ git stash apply #回复
$ git stash drop #删除
第二,恢复的同时删除stash内容
$ git stash pop
删除分支
$git branch -d dev
强制删除分支
$ git branch -D dev
查看远程仓库信息:
$ git remote -v
本地文件推送远程仓库(origin是远程仓库名字,dev是分支)
$ git push origin dev
在本地创建一个远程分支(本地有分支dev,github仓库没有dev)
$ git push --set-upstream origin dev
在本地创建一个和远程分支对应的分支(本地之前空白,相当于创建本地分支,并且和远程分支关联起来)
$ git checkout -b dev origin/dev
指定本地存在的dev分支和远程分支连接(本地有dev,但是没有和仓库的dev关联)
$ git branch --set-upstream-to=origin/dev dev
如果在你提交前,文件已经被修改,则需要先把远程仓库的分支拉下来,然后修改
$ git pull
手动合并修改后在提交。(git push)
因此,多人协作的工作模式通常是这样:
首先,可以试图用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/<branchname>。
git带账号和密码 clone
git clone http://邮箱(或用户名):密码@仓库地址
网友评论