Git 是一个强大的分布式版本控制系统,广泛用于代码管理和协作开发。以下是一些常用的 Git 操作命令,涵盖了从基本操作到高级功能。
基本命令
1. 初始化仓库
git init
在当前目录初始化一个新的 Git 仓库。
2. 克隆远程仓库
git clone <repository-url>
克隆远程仓库到本地。
3. 查看仓库状态
git status
显示当前分支的状态,包括未跟踪文件、暂存区和工作区的更改。
4. 添加文件到暂存区
git add <file> # 添加单个文件
git add . # 添加所有文件
将文件添加到暂存区,以准备提交。
5. 提交更改
git commit -m "Commit message"
提交暂存区的更改,并附上提交信息。
6. 查看提交历史
git log
显示当前分支的提交历史。
7. 查看分支
git branch
列出所有分支,当前分支会有一个 * 标记。
8. 创建新分支
git branch <branch-name>
创建一个新分支。
9. 切换分支
git checkout <branch-name>
切换到指定分支。
10. 合并分支
git merge <branch-name>
将指定分支合并到当前分支。
11. 删除分支
git branch -d <branch-name> # 删除本地分支
删除指定的本地分支。
12. 远程操作
git remote add origin <repository-url>
git remote -v # 查看远程仓库
git push origin <branch-name> # 推送分支到远程仓库
git fetch origin # 获取远程仓库的更新
git pull origin <branch-name> # 从远程仓库拉取并合并分支
高级命令
1. 暂存和恢复工作现场
git stash # 暂存当前工作现场
git stash pop # 恢复暂存的工作现场
保存当前工作现场,以便可以在其他分支上工作,之后恢复这些更改。
2. 查看远程仓库
git remote -v
列出所有远程仓库及其 URL。
3. 设置全局配置
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
设置 Git 的全局用户名和电子邮件。
4. 查看差异
git diff <branch-or-commit> # 查看不同分支或提交之间的差异
git diff --staged # 查看已暂存的差异
显示文件的更改。
5. 重置分支
git reset --hard <commit> # 重置到指定的提交,丢弃所有更改
git reset --soft <commit> # 重置到指定的提交,保留工作目录的更改
重置当前分支的历史记录。
6. 处理冲突
git mergetool # 使用图形化工具处理冲突
git diff # 查看冲突
git add <resolved-file> # 标记冲突文件为已解决
在合并冲突时,用于解决文件冲突。
7. 查看特定提交的文件
git show <commit>:<file-path>
查看指定提交中的文件内容。
8. 回滚到特定提交
git revert <commit>
生成一个新的提交,撤销指定的提交。
标签操作
1. 创建标签
git tag <tag-name>
在当前提交上创建一个轻量级标签。
2. 查看标签
git tag
列出所有标签。
3. 推送标签到远程
git push origin <tag-name>
git push origin --tags # 推送所有标签
推送指定标签或所有标签到远程仓库。
其他命令
1. 查看更改的文件
git status -s
简洁模式下显示已更改的文件。
2. 查看提交图
git log --graph --oneline --decorate --all
查看带图形的提交历史。
3. 删除远程分支
git push origin --delete <branch-name>
删除远程仓库的指定分支。
例子
从头到尾的示例
-
初始化仓库并克隆远程仓库:
git init git clone https://github.com/user/repo.git cd repo -
查看分支并创建新分支:
git branch git branch new-feature -
切换到新分支:
git checkout new-feature -
进行更改并提交:
echo "Hello World" > hello.txt git add hello.txt git commit -m "Add hello.txt" -
合并分支:
git checkout main git merge new-feature -
推送到远程仓库:
git push origin main
问题处理 (持续更新)
-
重置本地仓库:
git fetch会更新远程引用,而git reset --hard会将本地仓库重置到远程仓库的最新状态;使用git pull命令带上--force参数可以强制覆盖本地更改。git fetch origin git reset --hard origin/develop或
git pull origin develop --force
通过这些命令,你可以高效地进行代码管理和协作开发。记得根据需要选择合适的命令,并注意备份和分支管理,以免数据丢失或影响其他开发者的工作。