一、连接Github,两个仓库进行远程同步
在Git bash中,输入:
$ git remote add origin git@github.com:Richardchub/learngit.git
把本地库内容推送到远程库上:
$ git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内同推送到远程的新的master分支,还会把本地的master分支和远程的master分支关联起来,以后的推送或者拉取时就可以简化命令。
二、克隆远程库
三、创建与合并分支$ git clone git@github.com:wp734/gitskills.git
然后进入gitskills目录看一看
$ cd gitskills $ ls README.md
四,Bug分支首先,我们创建dev分支,然后切换到dev分支:
$ git checkout -b dev Switched to a new branch 'dev'
git chaeckout命令加上-b表示创建并切换,相当于:
$ git branch dev $ git checkout dev Switched to branch'dev'
然后用git branch命令查看当前分支:
$ git branch * dev master
git branch命令会显示所有分支。
把dev分支的工作合并到master分支上:
$ git merge dev
合并完成后,就可以放心地删除dev分支了。
$ git branch -d dev $ git branch * master
如果feature1分支和master分支有分歧(同时对同一文件进行了修改)
$ git merge feature1 (此时出现错误信息) (在文本编辑器中修改后) $ git add readme.txt $ git commit -m"conflict fixed"
此时才和并完成。最后删除feature1分支
$ git branch -d feature1 Deleted branch feature1(was 14096d0).
$ fit log --graph --pretty=oneline --abbrev-commit
可以看到分支合并图。
再合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
$ git merge --no-ff -m"merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去
当前dev上进行的工作还未做完,但你想创建一个分支issue-101来修复一个Bug。
$ git stash Save working directory and index state WIP on dev:f52c633 add merge
现在再用git status查看工作区,就是干净的。
然后修改Bug:
$ git checkout master $ git checkout -b issue-101 Switched to a new branch'issue-101' $ git add readme.txt $ git commit -m"fix bug 101" $ git checkout master $ git merge --no-ff -m"merged bug fix 101"issue-101 $ git branch -d issue-101
接着回到dev分支干活了!
$ git checkout dev Switched to branch'dev' $ git status On branch dev nothing to commit,working tree clean
工作现场怎么找呢?
$ git stash list stash@{0},WIP on dev:f52c633 add merge
git stash list查看工作现场,如果没有,则看不到任何内容。
1,git stash apply恢复,恢复后,stash内容并不删除。你需要git stash drop来删除
$ git stash apply
2,git stash pop恢复,恢复后,同时把stash内容也删了
$ fit stash pop
五,多人协作
查看远程库的信息,用git remote,详细信息,用git remote -v
$ git remote origin $ git remote -v origin git@github.com:Richardchub/learngit.git(fetch) origin git@github.com:Richardchub/learngit.git(push)