Git 是一个流行的免费开源的分布式版本控制系统,广泛用于代码管理和协作开发。
下面是Git的基本工作流程
工作区域说明:
- 工作目录(working Directory):就是平时存放代码的地方
- 暂存区(Staging Area):缓存区域,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- 本地仓库(Local Repository):就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- 远程仓库(Remote):托管代码的服务器,如github,公司内部可能使用gitlab
Git 基础操作 #
初始化仓库 #
在当前目录初始化一个新的 Git 仓库。
git init
本地会生成一个.git的隐藏文件
克隆远程仓库 #
将远程仓库克隆到本地。
git clone <repository-url>
查看状态 #
查看工作目录中文件的状态(修改、未跟踪、暂存等)。
git status
添加文件到暂存区 #
将指定文件添加到暂存区。
git add <file>
将当前目录下的所有文件添加到暂存区。
git add .
提交更改 #
将暂存区的更改提交到本地仓库。
git commit -m "描述提交的更改"
查看提交记录 #
显示提交历史。
git log
以简洁形式显示提交历史。
git log --oneline
查看差异 #
查看工作区与暂存区之间的差异。
git diff
比较两个分支之间的差异。
git diff <branch1> <branch2>
分支管理 #
创建分支 #
创建一个新分支。
git branch <branch-name>
切换分支 #
切换到指定分支。
git checkout <branch-name>
创建并切换分支 #
创建一个新分支并切换到该分支。
git checkout -b <branch-name>
合并分支 #
将指定分支合并到当前分支。
git merge <branch-name>
删除分支 #
删除本地分支(如果该分支未完全合并到当前分支,会提示错误)。
git branch -d <branch-name>
强制删除分支。
git branch -D <branch-name>
远程仓库操作 #
查看远程仓库 #
显示远程仓库的地址。
git remote -v
添加远程仓库 #
添加一个新的远程仓库。
git remote add <remote-name> <repository-url>
推送到远程仓库 #
将本地分支推送到远程仓库。
git push <remote-name> <branch-name>
拉取最新更改 #
拉取远程分支的最新更改并合并到当前分支。
git pull <remote-name> <branch-name>
获取远程分支 #
获取远程仓库的最新信息,但不会自动合并。
git fetch <remote-name>
撤销操作 #
撤销工作区更改 #
撤销对某个文件的修改,将其恢复到上次提交的状态。
git checkout -- <file>
撤销暂存区更改 #
将暂存区的文件撤回到工作区。
git reset HEAD <file>
撤销提交 #
撤销到指定提交,但保留更改在暂存区。
git reset --soft <commit-hash>
彻底撤销到指定提交,并删除所有更改。
git reset --hard <commit-hash>
标签管理 #
创建标签 #
为当前提交创建一个标签。
git tag <tag-name>
创建带说明的标签。
git tag -a <tag-name> -m "标签说明"
查看标签 #
列出所有标签。
git tag
推送标签 #
将本地标签推送到远程仓库。
git push <remote-name> <tag-name>
删除标签 #
删除本地标签。
git tag -d <tag-name>
删除远程标签。
git push <remote-name> --delete <tag-name>
实用技巧 #
忽略文件 #
在项目根目录创建 .gitignore 文件,列出需要忽略的文件或文件夹:
# 忽略所有 .log 文件
*.log
# 忽略 tmp 文件夹及其内容
/tmp
配置别名 #
为常用命令配置别名:使用 git st 代替 git status。
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
查看配置 #
显示当前 Git 配置。
git config --list
常见问题解决 #
合并冲突 #
合并时可能出现冲突,需要手动解决:
打开冲突文件,按照标记(«««<、=======、»»»>)解决冲突。添加修改后的文件到暂存区:
git add <file>
提交合并:
git commit
恢复误删的分支 #
如果不小心删除了分支,可以用以下方法恢复:
git reflog
git checkout -b <branch-name> <commit-hash>
回滚远程提交 #
如果误推了错误的提交,可以使用:
git revert <commit-hash>
git push
总结 #
以上是 Git 的一些常用操作和技巧。