创建版本库
www.liaoxuefeng.com/wiki/896043…
1、创建空目录
$ mkdir learngit
$ cd learngit
$ pwd
pwd 查看当前目录
2、将目录变成git可以管理的仓库
$ git init
3、提交
$ git add readme.txt
$ git commit -m "wrote a readme file"
$ git pull --rebase
$ git push
远程仓库
1 添加远程仓库
1.首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
2.在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
3.目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
本地关联远程仓库
在本地仓库目录下执行如下命令,注意替换成自己的git账户
$ git remote add origin git@github.com:michaelliao/learngit.git
把本地内容push到远程仓库
我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
2 从远程库克隆
用命令git clone克隆一个本地库
$ git clone git@github.com:michaelliao/gitskills.git
Cloning into 'gitskills'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.
创建与合并分支
1 创建与合并分支
- 创建dev分支,然后切换到dev分支
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
- 用git branch命令查看当前分支
$ git branch
* dev
master
- 提交修改或增加的文件
$ git commit -m "edit"
- dev分支任务完成时,切回master分支
git checkout master
此时刚刚提交的代码不见了
- 把dev分支的工作成果合并到master分支上,应该是本地的master分支,push之后才能到远程的master分支上
$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
git merge命令用于合并指定分支到当前分支 6) 合并完成即可删除分支了
$ git branch -d dev
Deleted branch dev (was b17d20e).
此时查看分支,就只剩下master分支了
在实际开发中,可以不用每次都把分支删除,一方面可以留作记录,另一方面分支在开发的某个阶段整体清理即可
拉取远程分支 git fetch origin 分支名
常用命令
远程新建分之后,git branch -a看不到远程分支怎么办
git fetch origin
git checkout -b 分支名 origin/分支名
或者
git fetch origin 分支名