标签:git
最近项目需要用git来进行版本管理,业务时间整理下git的常用命令。
1、服务器端建立git仓库
[vagrant@localhost ~]$ pwd
/home/vagrant
[vagrant@localhost ~]$ mkdir -p ~/git/gittest.git
[vagrant@localhost ~]$ cd git/gittest.git/
[vagrant@localhost gittest.git]$ git init --bare
Initialized empty Git repository in /home/vagrant/git/gittest.git/
2、开发机上复制新建的git仓库
angel:GitTest $ git clone vagrant@192.168.33.10:~/git/gittest.git
Cloning into ‘gittest‘...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
angel:GitTest $ ll
total 0
drwxr-xr-x 3 angel staff 102 5 4 16:09 gittest
3、罗列,添加,删除远端仓库别名
angel:gittest $ git remote add github git@github.com:XXXXX/test.git #添加远端仓库
angel:gittest $ git remote -v #罗列远端仓库
github git@github.com:XXXXX/test.git (fetch)
github git@github.com:XXXXX/test.git (push)
origin vagrant@192.168.33.10:~/git/gittest.git (fetch)
origin vagrant@192.168.33.10:~/git/gittest.git (push)
angel:gittest $ git remote rm github #删除远端仓库
angel:gittest $ git remote -v
origin vagrant@192.168.33.10:~/git/gittest.git (fetch)
origin vagrant@192.168.33.10:~/git/gittest.git (push)
git push [alias] [branch]:将本地 [branch] 分支推送成为 [alias] 远端上的 [branch] 分支
angel:gittest $ git push origin master:master
Counting objects: 3, done.
Writing objects: 100% (3/3), 239 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To vagrant@192.168.33.10:~/git/gittest.git
* [new branch] master -> master
git push origin master:master,这里有2个master,作为新手,往往搞不清楚这2个master的区别。
第一个master是本地branch,第二个master是远程branch,看下面的推送方式会清晰一些。
angel:gittest $ git push origin master:test
Total 0 (delta 0), reused 0 (delta 0)
To vagrant@192.168.33.10:~/git/gittest.git
* [new branch] master -> test
如上表示将本地的master分支内容推送到远程origin的test分支。
5、拉取数据到本地
angel:gittest $ git fetch origin
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From 192.168.33.10:~/git/gittest
* [new branch] master -> origin/master
* [new branch] test -> origin/test
值得注意的是,在 fetch 操作下载好新的远程分支之后,你仍然无法在本地编辑该远程仓库中的分支。换句话说,在本例中,你不会有一个新的 test 分支,有的只是一个你无法移动的 origin/test指针。
如果想要一份自己的 test 来开发,可以在远程分支的基础上分化出一个新的分支来:
angel:gittest $ git checkou -b test origin/test
git: ‘checkou‘ is not a git command. See ‘git --help‘.
angel:gittest $ git checkout -b test origin/test
Branch test set up to track remote branch test from origin.
Switched to a new branch ‘test‘
6、导出
angel:gittest $ git tag
ad7b
v1
假设 tag v1导出,可以按照如下方式导出。
1). 导出并压缩为 zip 格式:
angel:gittest $ git archive --format=zip --output=v1.0.zip v1
2). 导出并压缩为 tar.bz2 格式:angel:gittest $ git archive v1 | bzip2 > v1.0.tar.bz2
3). 导出并压缩为 tar.gz 格式:angel:gittest $ git archive v1 | bzip2 > v1.0.tar.bz2
angel:gittest $ ll
total 40
-rw-r--r-- 1 angel staff 231 5 4 22:34 v1.0.tar.bz2
-rw-r--r-- 1 angel staff 224 5 4 22:34 v1.0.tar.gz
-rw-r--r-- 1 angel staff 187 5 4 22:33 v1.0.zip
标签:git
原文地址:http://blog.csdn.net/angel22xu/article/details/45481265