在使用Git初始化版本库的时候,使用"git init"命令和使用"git init --bare"命令有什么区别呢?
用"git init"初始化的版本库(暂且称之为working repository)将会生成2类文件:“.git“版本库目录(记录版本历史)和实际项目文件的拷贝。你可以把这类版本库叫做“工作目录”。工作目录是一个包含有版本历史目录“.git"和源文件的目录。你可以在工作目录修改你的源文件并使用"git add"和"git commit"命令进行版本管理。
用“git init --bare"初始化的版本库(暂且称之为bare repository)仅包含".git"目录(记录版本历史),不含项目源文件拷贝。如果你进入版本目录,你会发现仅有".git"目录,没有其他文件。版本库仅包含记录着版本历史的文件。
什么情况下使用“git init"和"git init --bare"呢?
working repository适合于实际编辑生产过程中,在工作目录下,你将会进行实际的编码、文件管理操作和保存项目在本地工作。如果你开始创建一个项目将包含有源代码和和版本跟踪记录的时候你可以使用"git init".或者,如果你克隆"git clone"一个已经存在的版本库的时候,你也可以得到一个working repository,它也将包含".git"目录和源文件的拷贝。
bare repository主要是用作分享版本库。开发者使用bare repository可以向其他人分享存储在本地的版本库,以便于实时分享代码更新和团队协作 。通过使用"git push"命令,你可以将你的本地更新提交至“中心版本库”(其他开发者可访问的中心库)。其他开发者可以使用“git pull"命令者接受你提交的版本更新。如果你正在一个多人协作的项目团队或者同一个项目需要在不同电脑上面完成的时候,bare repository可以满足你的分布式开发需求。
总结:“工作目录”是通过使用“git init“或“git clone”创建的本地项目拷贝。我们可以在工作目录下面修改和测试代码。通过测试后我们可以使用“git add“和”git commit“命令本地提交修改,然后使用“git push”命令向远程 bare repository库提交更新,通常bare repository指定其他服务器,其他开发者将可以及时看到你的更新。当我们想去更新本地工作目录的时候,我们可以使用“git pull”命令去接受其他开发者提交的更新。
原文:what is a bare git repository? http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/
译By: 直来直往 http://hi.baidu.com/aboutstudy/blog/item/8cec7226e3c101098a82a1c6.html
分享到:
相关推荐
除了 `git init --bare`,你还可以通过 `git clone --bare` 命令克隆现有的 Git 仓库来创建 bare 版本。例如: ```bash git clone --bare https://github.com/user/repo.git bare-repo.git ``` 这将创建一个名为 `...
- **命令**:`git init --bare [projectname.git]` - **作用**:创建一个不包含工作目录的远程仓库。 **3.2 将代码推向git仓库** - **3.2.1 将新的项目推送至新建的git仓库** - **步骤**: 1. 初始化本地仓库。 ...
若希望创建一个用于共享的非工作Git仓库,则需加上`--bare`参数,即`git init --bare`。 #### 克隆仓库 - **克隆**:将一个已存在的Git仓库复制到本地。可以通过SSH协议(`git clone ssh://server/path/to/...
2. **创建裸仓库**:在服务器端,选择一个合适的位置创建一个新的空目录,然后在此目录下执行`git init --bare repository_name.git`,这将创建一个没有工作目录的“裸”仓库。 3. **配置权限**:如果需要限制访问...
Git-2.21.0-64 for windows Git 2.23 Release Notes ====================== Updates since v2.22 ------------------- Backward compatibility note * The "--base" option of "format-patch" computed the ...
- **`git init`**: 初始化一个新的 Git 仓库。此命令会在当前目录下创建一个 `.git` 目录,并准备好版本控制所需的所有文件。 - 示例: `git init myproject` - 参数说明: - `-q, --quiet`: 静默模式。 - `--bare...
- **初始化Git仓库**:例如在`/home/git/sample.git`创建一个裸仓库,使用`git init --bare sample.git`命令。 - **权限设置**:修改仓库所有者和组为`apache:apache`,`chown -R apache:apache .`。 - **Gitweb...
- **Managing Submodules**: Commands like `git submodule init` and `git submodule update` are used to initialize and update submodules. **Chapter 9: Working with Subversion** - **SVN Compatibility**:...
使用刚创建的用户账号,在代码仓库目录下创建所需的Git库目录,然后执行`git init --bare`命令完成仓库初始化。裸仓库(bare repository)是一种没有工作目录的特殊类型仓库,主要用于远程共享。 ##### 使用Maven...
- 初始化一个空的仓库:`git init --bare` - 推送本地代码到远程仓库:`git push origin master` - **创建客户端代码仓库**: - 克隆远程仓库:`git clone <repository-url>` - 提交更改:`git add .`、`git ...
- `git init --bare`:创建一个空的裸仓库,不包含工作目录,通常用于共享服务器上的版本库。 **示例**: ```shell git init --bare ``` ##### `git clone` **作用**:用于从远程服务器上克隆已存在的仓库到...
- `git init --bare`:此命令用于创建一个裸仓库(bare repository),这种仓库不包含工作目录,只包含`.git`目录,通常用于作为远程仓库。 ##### 2. 设置仓库权限 为了确保仓库的正常使用,还需要对仓库的权限...
$ git clone --bare https://github.com/user/repo.git $ cd /tmp/repo.git 下载 您可以在发行页面上下载与您的平台匹配的应用程序。 安装 将可执行文件放置在您的Git存储库中。 最好将其放在PATH以便可以在系统中...
”git init –-bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作 git config --global $ git config --global user.name author #...
- `git init --bare`:创建一个裸仓库(没有工作目录)。 - `git clone [url]`:克隆一个现有的仓库。 - **获取和推送**: - `git fetch`:从远程仓库获取最新的更改。 - `git pull`:从远程仓库获取最新更改,...
- 初始化仓库:`git init --bare`。 - 克隆仓库:`git clone [url]`。 - 查看状态:`git status`。 - 添加文件到暂存区:`git add your_file`。 - 提交更改:`git commit -m "提交的描述信息"`。 - 查看提交历史:`...
Git服务器的主要组件包括Git守护进程(git-daemon)、Git裸仓库(bare repository)和用于访问控制的钩子脚本(hooks)。在服务器端,你需要配置Git守护进程来监听特定端口,以便客户端可以通过网络连接进行推送和...