Git是当今最流行的分布式版本控制系统,下面是在Linux系统中使用Git的完整指南。
在大多数Linux发行版中,Git可以通过包管理器安装:
# Debian/Ubuntu
sudo apt-get update
sudo apt-get install git
# CentOS/RHEL
sudo yum install git
# Fedora
sudo dnf install git
# Arch Linux
sudo pacman -S git
安装完成后验证版本:
git --version
设置全局用户名和邮箱(每次提交都会记录这些信息):
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
其他常用配置:
# 设置默认编辑器为nano
git config --global core.editor nano
# 设置颜色输出
git config --global color.ui auto
# 查看所有配置
git config --list
初始化新仓库:
mkdir my-project
cd my-project
git init
克隆现有仓库:
git clone https://github.com/user/repo.git
# 或使用SSH
git clone git@github.com:user/repo.git
添加文件到暂存区:
git add filename # 添加特定文件
git add . # 添加所有更改
提交更改:
git commit -m "描述性的提交信息"
查看状态:
git status
查看提交历史:
git log
git log --oneline # 简洁视图
git log --graph --all --decorate # 图形化视图
# 创建新分支
git branch new-feature
# 切换分支
git checkout new-feature
# 或使用更简洁的方式
git switch new-feature
# 创建并切换到新分支
git checkout -b new-feature
# 或
git switch -c new-feature
# 列出所有分支
git branch -a
# 合并分支
git checkout main
git merge new-feature
# 删除分支
git branch -d new-feature # 安全删除
git branch -D new-feature # 强制删除
# 添加远程仓库
git remote add origin https://github.com/user/repo.git
# 查看远程仓库
git remote -v
# 推送更改
git push -u origin main # 第一次推送
git push # 之后可以简写
# 拉取更新
git pull origin main
# 获取远程更新但不合并
git fetch origin
# 撤销工作目录中的修改
git checkout -- filename
# 取消暂存的文件
git reset HEAD filename
# 修改最后一次提交
git commit --amend
# 回退到特定提交
git reset --hard COMMIT_HASH
储藏更改:
git stash # 储藏当前更改
git stash list # 查看储藏列表
git stash apply # 恢复最近的储藏
git stash pop # 恢复并删除储藏
标签管理:
git tag v1.0 # 创建轻量标签
git tag -a v1.0 -m "版本1.0" # 创建带注释的标签
git tag # 列出标签
git push origin --tags # 推送标签到远程
子模块:
git submodule add https://github.com/user/repo.git path/to/submodule
git submodule update --init --recursive
在~/.gitconfig中添加:
[alias]
co = checkout
br = branch
ci = commit
st = status
last = log -1 HEAD
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
解决合并冲突:
1. 打开冲突文件,找到<<<<<<<
, =======
, >>>>>>>
标记
2. 手动解决冲突后保存文件
3. 执行git add filename
标记为已解决
4. 完成合并:git commit
恢复误删的分支:
git reflog # 查找分支最后的提交哈希
git branch branch-name commit-hash # 恢复分支
通过掌握这些基本和高级Git操作,您可以在Linux系统上高效地进行版本控制。Git的学习曲线可能较陡,但熟练掌握后将成为您开发工作中的强大工具。