首先假想一种项目情景,假设work1现在开始了一个新项目,在/home/pillar/pillar/work1下建立了一个新的git仓库;另一个叫work2的工作目录也在同一台机器上,他的任务是和work1一起开发这个项目。
1,work1首先初始化一个新的仓库:
[pillar@apus work1]$ git init
2,在work1里面新建一些文件:
[pillar@apus work1]$ mkdir 1 2 3 4 5 6
[pillar@apus work1]$ cd 1
[pillar@apus 1]$ touch 1 2 3 4 5 6
[pillar@apus 1]$ echo "hello" > 1
3,配置一下当前仓库:
[pillar@apus 1]$ git config user.name pillar
[pillar@apus 1]$ git config user.email pillar@andestech.com
[pillar@apus 1]$ ls -a
. .. 1 2 3 4 5 6
[pillar@apus 1]$ cd ..
[pillar@apus work1]$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[user]
name = pillar
email = pillar@andestech.com
4,添加并提交当前数据仓库
[pillar@apus work1]$ git add .
[pillar@apus work1]$ git commit -m "1st commit"
[master(根提交) fce1b87] 1st commit
1 个文件被修改,插入 1 行(+)
create mode 100644 1/1
create mode 100644 1/2
create mode 100644 1/3
create mode 100644 1/4
create mode 100644 1/5
create mode 100644 1/6
[pillar@apus work1]$ vim main.c
[pillar@apus work1]$ ls
1 2 3 4 5 6 main.c
[pillar@apus work1]$ git add .
[pillar@apus work1]$ git commit -m "2st commit"
[master d2eb9a8] 2st commit
1 个文件被修改,插入 5 行(+)
create mode 100644 main.c
5,复制work1的工程到work2的工作目录下
[pillar@apus work1]$ cd ../work2/
[pillar@apus work2]$ ls
[pillar@apus work2]$ git clone /home/pillar/pillar/work1
正克隆到 'work1'...
完成。
[pillar@apus work2]$ ls
work1
[pillar@apus work2]$ cd work1/
[pillar@apus work1]$ ls
1 main.c
6,在work2的工作目录下修改工程下的文件并添加提交
[pillar@apus work1]$ vim main.c
[pillar@apus work1]$ git add .
[pillar@apus work1]$ git commit -m "3st commit"
[master b0a6d3a] 3st commit
1 个文件被修改,插入 1 行(+)
7,在work1的工作目录下将work2修改的工程拉过来并合并
[pillar@apus work1]$ ls
1 main.c
[pillar@apus work1]$ cd ../../work1/
[pillar@apus work1]$ ls
1 2 3 4 5 6 main.c
[pillar@apus work1]$ git pull /home/pillar/pillar/work2/work1
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
来自 /home/pillar/pillar/work2/work1
* branch HEAD -> FETCH_HEAD
更新 d2eb9a8..b0a6d3a
Fast-forward
main.c | 1 +
1 个文件被修改,插入 1 行(+)
[pillar@apus work1]$ less main.c
[pillar@apus work1]$ cat main.c
int main()
{
return 0;
}
//work1 1st
//work2 1st
可以看出工程管理相当的方便。