git教程

163 阅读2分钟

创建版本库

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 创建与合并分支

  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'
  1. 用git branch命令查看当前分支
$ git branch
* dev
  master
  1. 提交修改或增加的文件
$ git commit -m "edit"
  1. dev分支任务完成时,切回master分支
git checkout master

此时刚刚提交的代码不见了

  1. 把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 分支名