### Git使用详解
#### 一、Git简介与安装
**Git**是一款分布式版本控制系统,用于追踪计算机文件的变更,以及管理多个开发人员协同工作时的变更。它最初由Linus Torvalds为Linux内核的开发而设计,现已被广泛应用于各种软件项目的版本控制。
#### 二、Linux端创建Git仓库
##### 1. 切换Git用户
为了确保Git仓库拥有写入权限,通常需要使用特定的Git用户来进行操作。如果之前已经创建了Git用户,可以通过以下命令切换用户:
```bash
su git
```
如果还没有创建Git用户,则可以先创建一个新用户:
```bash
sudo useradd git
sudo passwd git
```
设置密码后,即可使用`su git`命令切换到Git用户。
##### 2. 使用Git用户创建文件夹及初始化Git库
- 创建文件夹:`mkdir test`
- 初始化Git仓库:`git init test`
或者直接使用`git init --bare test`命令创建一个裸仓库,不包含工作目录,通常用于共享的远程仓库。
示例命令如下:
```bash
[git@localhost user1]$ mkdir tachao
[git@localhost user1]$ git init tachao
Initialized empty Git repository in /home/user1/tachao/.git/
```
#### 三、Windows端创建Git仓库
在Windows环境下,可以使用**Git Bash**来模拟Linux环境,实现Git仓库的创建和管理。
##### 1. 创建文件夹
在需要的位置创建一个新的文件夹作为仓库目录。
##### 2. 进入Git Bash
- 在文件夹所在位置点击鼠标右键选择“Git Bash Here”
- 或者打开Git Bash,使用`cd`命令进入该文件夹,例如:`cd C:\Users\YourUsername\Documents\NewFolder`
##### 3. 初始化仓库
在指定的文件夹下执行`git init`命令,将此文件夹变成Git可以管理的仓库。
示例命令如下:
```bash
git init
```
此时,该目录下会出现一个名为`.git`的隐藏文件夹,表示已成功初始化为Git仓库。
#### 四、本地操作
##### 1. 分布式特性
Git是一个分布式版本控制系统,这意味着每个开发者的电脑上都有一个完整的仓库副本,可以在本地进行所有操作。这意味着即使没有网络也可以正常进行版本控制操作,比如提交更改等。
##### 2. 提交文件
- 将文件添加到暂存区:`git add <filename>`
- 将暂存区的文件提交到仓库:`git commit -m "提交信息"`
示例命令如下:
```bash
git add readme.txt
git commit -m "Initial commit"
```
对于已经跟踪的文件,可以直接提交更改,步骤相同。
##### 3. 查看状态
- 查看当前仓库的状态:`git status`
- 查看文件的具体差异:`git diff <filename>`
示例命令如下:
```bash
git status
git diff readme.txt
```
##### 4. 丢弃工作区的修改
如果在工作区中进行了不必要的更改,可以使用以下命令来丢弃这些更改:
```bash
git checkout -- <filename>
```
#### 五、远程操作
##### 1. 创建远程版本库
假设已经配置好了远程服务器上的Git用户和SSH密钥对,接下来可以在远程服务器上创建一个Git仓库。
示例命令如下:
```bash
ssh [email protected]
mkdir /opt/git/test
cd /opt/git/test
git init --bare test.git
```
##### 2. 连接远程仓库
在本地Git仓库中添加远程仓库地址:
```bash
git remote add origin [email protected]:/opt/git/test/test.git
```
##### 3. 推送代码到远程仓库
- 添加所有改动:`git add .`
- 提交更改:`git commit -m "aaa"`
- 推送到远程仓库:`git push -u origin master`
示例命令如下:
```bash
git add .
git commit -m "aaa"
git push -u origin master
```
##### 4. 从远程仓库下载代码
- 克隆远程仓库到本地:`git clone [email protected]:/opt/git/test/test.git`
- 更新本地文件:`git pull origin master`
示例命令如下:
```bash
git clone [email protected]:/opt/git/test/test.git
cd test.git
git pull origin master
```
以上步骤涵盖了从创建Git仓库、本地操作到远程操作的完整流程。通过这种方式,可以有效地管理和协作开发项目。