一、Git 简介
1.1 Git 是什么?
Git 是一个分布式版本控制系统,用于跟踪文件的变化,尤其是源代码的管理。它允许多个开发者协同工作,跟踪代码的版本和历史记录,方便项目的管理和维护。
1.2 Git 的主要功能
- 版本控制:记录文件的变化历史,方便恢复和比较。
- 分支管理:轻松创建、合并和删除分支,提高开发效率。
- 分布式工作:每个开发者的工作目录都是完整的代码库,支持离线工作。
- 协作功能:支持多开发者协作,提供合并、冲突解决等功能。
二、Git 常用命令
在 Git 中,有许多命令是开发者日常使用的。以下是一些常用的 Git 命令及其简要说明:
2.1 Git 基础命令
git init
:初始化一个新的 Git 仓库。git clone
:克隆远程仓库到本地。git status
:查看当前仓库的状态,包括未跟踪的文件、修改的文件等。git add
:将文件添加到暂存区。git commit -m "message"
:提交暂存区的更改,并添加提交信息。git push
:将本地提交推送到远程仓库。git pull
:从远程仓库获取最新的提交并合并到本地。git branch
:列出所有分支。git checkout
:切换到指定的分支。
2.2 Git 状态管理
git status
:查看当前工作目录和暂存区的状态。git diff
:查看未暂存的更改。git diff --cached
:查看已暂存的更改。
2.3 Git 日志管理
git log
:查看提交历史。git log --oneline
:简洁的提交历史。git log --graph
:以图形化方式查看分支历史。
三、搭建 Git 私服
3.1 搭建私有 Git 服务器
在本地或公司内部搭建 Git 私服可以提高安全性和管理效率,以下是搭建步骤:
-
安装 Git: 在 Linux 服务器上安装 Git,使用以下命令:
sudo apt-get update sudo apt-get install git
-
创建 Git 用户: 为了安全性,可以创建一个专用的 Git 用户。
sudo adduser git
-
创建裸仓库: 在 Git 用户的主目录下创建一个裸仓库,用于存储所有的 Git 数据。
sudo mkdir /home/git/myrepo.git cd /home/git/myrepo.git sudo git init --bare
-
设置访问权限: 确保 Git 用户对仓库有读写权限。
sudo chown -R git:git /home/git/myrepo.git
-
访问仓库: 其他用户可以使用以下命令克隆仓库:
git clone git@<server_ip>:/home/git/myrepo.git
3.2 设置 SSH 密码
为了安全访问 Git 私服,建议使用 SSH 密钥进行身份验证。
-
生成 SSH 密钥: 在客户端生成 SSH 密钥。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
-
将公钥添加到 Git 服务器: 将生成的公钥(
~/.ssh/id_rsa.pub
)内容添加到 Git 服务器用户的~/.ssh/authorized_keys
文件中。cat ~/.ssh/id_rsa.pub | ssh git@<server_ip> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
四、搭建 Git 公服(GitHub/GitLab)
搭建 Git 公服相对简单,因为我们可以使用现成的在线服务,如 GitHub、GitLab 或 Bitbucket。下面将详细介绍在这几个平台上搭建公服的流程。
4.1 GitHub
4.1.1 注册账号
- 访问 GitHub。
- 点击“Sign up”按钮,填写所需信息(用户名、电子邮件、密码)。
- 按照提示完成注册过程,可能需要验证邮箱。
4.1.2 创建新仓库
- 登录后,点击页面右上角的加号(+)图标,选择“New repository”。
- 输入仓库名称(Repository name)。
- 可选地填写描述(Description),并选择可见性(Public 或 Private)。
- 如果需要,可以选择初始化仓库(Initialize this repository with a README)。
- 点击“Create repository”按钮。
4.1.3 设置权限
- 在创建的仓库页面,点击“Settings”选项卡。
- 在“Manage access”部分,可以邀请其他用户加入,并设置相应的权限(Read、Write、Admin)。
- 如果需要将仓库设置为公有或私有,返回到“Options”选项卡,在“Danger Zone”部分可以找到相关设置。
4.2 GitLab
4.2.1 注册账号
- 访问 GitLab。
- 点击“Register”按钮,填写所需信息(用户名、电子邮件、密码)。
- 按照提示完成注册过程。
4.2.2 创建新仓库
- 登录后,点击左侧菜单中的“Projects”。
- 选择“New Project”。
- 输入项目名称(Project name)和描述(Description)。
- 选择可见性(Public、Internal 或 Private)。
- 点击“Create project”。
4.2.3 设置权限
- 在项目页面,点击“Settings”选项。
- 在“Members”部分,可以添加新成员并设置其权限(Guest、Reporter、Developer、Maintainer、Owner)。
- 可根据需要调整其他设置,如 CI/CD 配置、Webhook 等。
4.3 Bitbucket
4.3.1 注册账号
- 访问 Bitbucket。
- 点击“Get Started”按钮,填写所需信息(用户名、电子邮件、密码)。
- 按照提示完成注册过程。
4.3.2 创建新仓库
- 登录后,点击左侧菜单中的“Repositories”。
- 选择“Create repository”。
- 输入仓库名称(Repository name)和描述(Description)。
- 选择可见性(Public 或 Private)。
- 点击“Create repository”按钮。
4.3.3 设置权限
- 在仓库页面,点击“Settings”选项。
- 在“User and group access”部分,可以添加新用户或组并设置权限(Read、Write、Admin)。
- 可以根据需要配置分支权限和其他选项。
4.4 访问和管理公服
-
克隆公仓库:
-
使用以下命令将公仓库克隆到本地:
git clone https://github.com/username/repository.git
-
将 URL 替换为相应平台的仓库链接。
-
-
推送代码:
-
在本地开发完成后,使用以下命令将代码推送到公仓库:
git add . git commit -m "Your commit message" git push origin main
-
五、常见问题及解决方案
5.1 常见问题
- 无法推送到远程仓库:可能是因为权限问题或需要合并。请检查本地与远程的分支状态。
- 合并冲突:在合并分支时可能出现冲突,需手动解决并再次提交。
5.2 解决方案
- 使用
git merge --abort
取消合并。 - 手动编辑冲突文件后使用
git add
标记已解决,再执行git commit
。
六、Git 配置及优化
6.1 配置 Git
-
设置全局用户名和邮箱:
git config --global user.name "Your Name" git config --global user.email "[email protected]"
-
查看所有配置:
git config --list
6.2 提高下载速度
设置代理可以提高 Git 的下载速度,具体步骤如下:
-
配置代理:
git config --global http.proxy http://proxyuser:[email protected]:port