git init 用法

git init 用法

1 概述

Git 使用 git init 命令创建一个空的仓库,基本上就是在当前目录下创建一个 .git 目录,目录下面存储着仓库的各项信息。

在一个已经创建过 Git 仓库的目录下执行 git init 命令也是没有问题的,它不会去重写任何已经存在的内容。最主要的原因,在已有的 Git 仓库下执行该命令就是获取新添加的模板。

如果带上路径执行 git init <path> 命令,它会在 <path> 目录下创建 .git 目录,如果该路径不存在,Git 同时也会创建该目录出来。比如命令:

$ git init hello
Initialized empty Git repository in hello/.git/

将同时创建 hello.git 两个目录,并初始化 Git 仓库。

2 命令参数详解

查阅命令帮助信息:

git init --help

以下是 git init 命令支持的参数及其简要说明:

  • -q, --quiet: 使用静默模式,仅打印错误或警告信息。
  • --bare: 创建一个裸仓库。使用这个参数时,Git 不会在当前目录下创建 .git 目录,而是将整个个目录转换成一个裸仓库。祼仓库不包含工作目录,只有 .git 目录中的内容。这种仓库通常用于远程仓库的服务器,因为用户不会直接在裸仓库中编辑文件。
  • --template=<template-directory>: 指定一个模板目录,Git 将从这个目录复制文件创建 .git 目录。默认的模板目录是 /usr/share/git-core/templates,模板目录下一般包含 hooks, info 与 branches 等子目录。
  • --separate-git-dir=<git-dir>: 这个参数允许你指定 .git 目录的位置,而不是在默认位置(即当前目录下),这对于那些想要将工作目录和 Git 目录分享的情况很有用。
  • --shared[=<perm>]: 设置新仓库的共享模式。如果指定了 <perm> 则设置为特定的权限模式,如果不指定,默认为 group 权限,即所有组成员都有可以推送到仓库。
  • -b <branch-name>, --initial-branch=<branch-name>: 在新创建的仓库中为初始分支使用指定的名称。如果未指定,则使用默认名称(当前为 master,但将来可能会更改;可以通过 init.defaultBranch 配置变量自定义名称)。

需要注意的是,虽然 git init 提供了这些选项,但最常见的用法是简单地不带任何参数地运行它,以便在当前目录中初始化一个新的 Git 仓库。如果你正在为远程仓库准备一个目录,则可能会使用 --bare 选项。

3 用法说明

3.1 Git 基础配置

在正式使用 Git 之前,我们需要配置 Git 提交时所使用的用户名与邮箱地址,配置指令如下:

git config --global user.name "Your Name"
git config --global user.email "your@mail.com"

3.2 简单示例

git init
git add .
git commit -m 'Init import repository'
  1. 创建一个 .git 目录;
  2. 将当前路径下的所有文件添加到 Git 仓库的缓存区;
  3. 将缓存区的文件提交到 Git 仓库。

3.3 远程仓库

虽然 git init 创建的是本地仓库,但利益于 Git 的强大的分布式特性,我们可以将本地仓库与远程仓库关联,方便进行远程仓库的代码推送与拉取。

git remote add origin <repository-url>
git push -u origin master

注意: git push -u 命令实际上是 git push 命令的一个变体,其中 -u--set-upstream 选项的加入具有特定的作用。

具体来说,git push -u <remote> <branch> 命令的作用包括两部分:

  1. 推送本地分支到远程仓库:首先,这个命令会将指定的本地分支(<branch>)推送到指定的远程仓库(<remote>)中对应的分支上。如果远程分支不存在,Git 会自动创建它。
  2. 设置上游跟踪分支:更重要的是,-u--set-upstream 选项告诉 Git 将这个远程分支设置为当前本地分支的上游跟踪分支(upstream tracking branch)。这意味着,之后你可以直接使用 git pull 来拉取远程分支的更改并合并到你的本地分支,而无需指定远程仓库和远程分支名;同样地,使用 git push 时,如果不带任何分支名,Git 会自动推送这个本地分支到其上游跟踪的远程分支。

简单来说,git push -u 一次性完成了推送和设置上游跟踪分支两个步骤,使得之后的操作更加简便。

4 结语

git init 命令是 Git 版本控制系统中用于初始化新仓库的关键命令。它通过在当前目录下创建一个 .git 隐藏文件夹来准备项目进行版本控制,并为后续的各种 Git 操作奠定基础。无论是个人项目还是团队协作项目,git init 都是开始使用 Git 进行版本控制的第一步。

5 参考资料

[1] git init --help
[2] man git-init
[3] Git系列:git init 深入理解及其使用技巧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iBlackAngel

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值