在U盘里建立git仓库

 

1、windows下安装msysgit作为git的管理工具,下载地址:http://code.google.com/p/msysgit/ 。安装成功后,可以看到git bash和git gui两种操作方式,以下通过git bash进行操作。

2、假设欲在 I:\\code_repo\\dcshop目录建立仓库作为服务端,依次执行以下命令:

cd I:\\code_repo\\dcshop               #切换当前目录到h磁盘

git --bare init --shared

最后一行git init的作用是创建一个空的git仓库或重新初始化一个已存在的仓库。bare参数的作用是让 syncfiles目录等价于一个赤裸的仓库(bare repository),shared参数则指定仓库在多个用户间共享。由此相当于创建了一个作为服务端的仓库。这个仓库的目录结构可以和后面创建的仓库 对比下,是不一样的。

3、假设欲同步的文件位于d:syncfiles目录下,现在需要把d:syncfiles目录下的文件推送到服务端仓库中,依次执行以下命令:

cd /d/syncfiles

git init                        #在此目录创建一个git仓库

git config core.autocrlf false  #可选,关闭自动将lf换行符转换为crlf换行符

git add .                       #将目录下的全部文件添加到索引中

git commit -m "提交信息"        #将变化提交到仓库

git remote add "origin" I:\\code_repo\\dcshop //添加一个远程仓库,origin为别名(git默认就是origin)

git push origin master
          #将本地内容推送到服务端仓库中

以上步骤完成后,本地d:syncfiles目录下的文件即被推送到服务端仓库中了。以后文件有改动时,可按以下步骤提交变化:

git add 改动的文件

git commit -m "提交信息"

#以上步骤可以反复进行,等工作告一段落时可再提交到服务端仓库中

git push

4、现在假设要在e:进行同步,则步骤如下:

cd /e

git clone I:\\code_repo\\dcshop      #从服务端克隆出一个仓库

git config core.autocrlf false

执行后,可在e:下看到syncfiles目录,这个目录的结构和d:syncfiles完全一致(同时可以比对下h:syncfiles的目录结构,是不一样的)。以后如果对这个目录进行更改,可按第3步将更改推送到服务端仓库中。

5、从服务端仓库中同步更改。假设在d:syncfiles进行了更新并推送到了服务端仓库,此时需要在e:syncfiles中进行同步。这个步骤包含了两个动作:

  • 从服务端仓库取出更新版本
  • 与本地仓库进行合并

步骤如下:

cd /e/syncfiles

git pull origin master

以上展示了git中常见的操作,但没有涉及到以下内容:

  • branch(分支)
  • 冲突和合并
  • 撤销和恢复

要说明的是,在git中有一个默认的分支存在,即master分支(主分支,即上文命令中出现的master),该分支由git自动生成。之前我们的各个操作都是在主分支上进行的,只是我们未察觉它的存在而已。

 

 

 

附上我的.git/config

 

Xml代码   收藏代码
  1. [core]  
  2.     repositoryformatversion = 0  
  3.     filemode = false  
  4.     bare = false  
  5.     logallrefupdates = true  
  6.     symlinks = false  
  7.     ignorecase = true  
  8.     hideDotFiles = dotGitOnly  
  9. [remote "origin"]  
  10.     fetch = +refs/heads/*:refs/remotes/origin/*  
  11.     url = I:\\code_repo\\dcshop  
  12.     puttykeyfile =   
  13. [branch "master"]  
  14.     remote = origin  
  15.     merge = refs/heads/master  
 

 

你可能感兴趣的:(版本控制工具)