本教程整合并优化了Git核心命令,涵盖初始化、配置、文件操作、分支管理、远程仓库操作及常见场景,适合快速入门和日常参考。命令按使用流程分组,简洁明了,包含注意事项和最佳实践。
1. 初始化与配置
初始化Git仓库并设置基本配置。
-
git init
初始化当前目录为Git仓库,创建
.git
文件夹。 -
git clone <repository_url>
克隆远程仓库到本地,例如
git clone https://github.com/username/repository.git
。 -
git status
查看当前分支状态,显示已修改、已暂存或未跟踪的文件。
-
git config --global user.name "Your Name"
设置全局用户名,例如"Your Name"。
-
git config --global user.email "[email protected]"
设置全局邮箱,例如"[email protected]"。
-
git config --global core.editor "code --wait"
配置默认编辑器为VS Code(替代VIM)。
2. 文件操作与提交
管理文件修改、暂存和提交。
-
git add <file_name>
将指定文件暂存到待提交区域。
-
git add .
暂存当前目录下所有修改的文件。建议:逐个添加文件,确保提交内容清晰。
-
git commit -m "message"
提交暂存文件到本地仓库,附带简洁描述性提交信息,例如
git commit -m "Add login feature"
。 -
touch .gitignore
创建
.gitignore
文件,指定忽略的文件或文件夹(例如node_modules/
、.env
)。 -
git checkout -- <file_name>
丢弃工作区中指定文件的修改,恢复到最新提交状态。
-
git reset --hard <commit_hash>
将当前分支回退到指定提交,丢弃之后的所有更改。注意:谨慎使用,数据不可恢复。
3. 查看历史与差异
检查提交历史和代码差异。
-
git log
显示详细提交历史记录。
-
git log --oneline
以单行格式简洁显示提交历史。
-
git show <commit_hash>
查看指定提交的详细信息。
-
git diff
比较工作区与暂存区之间的差异。
-
git diff --staged
比较暂存区与上次提交之间的差异。
-
git diff <commit_hash1> <commit_hash2>
比较两个提交之间的差异(可使用
..
简化,如git diff <hash1>..<hash2>
)。 -
git diff
比较两个分支之间的差异。
4. 分支管理
创建、切换、合并和删除分支。
-
git branch
列出所有分支,当前分支前有
*
标记。 -
git branch <branch_name>
创建新分支,例如
git branch feature-login
。 -
git checkout <branch_name> 或 git switch <branch_name>
切换到指定分支。
-
git checkout -b <branch_name> 或 git switch -c <branch_name>
创建并立即切换到新分支。
-
git merge <branch_name>
将指定分支合并到当前分支。建议 :在
main
分支上合并其他分支。
注意:若不同分支修改同一文件,可能引发冲突,需手动编辑文件,保留所需代码并删除冲突标记。 -
git rebase <branch_name>
将当前分支的提交重新应用到指定分支(例如
master
)上。注意:会改写历史,团队协作时需谨慎。 -
git branch -d <branch_name>
删除已合并的本地分支。未合并分支需用
-D
强制删除。
5. 暂存工作
临时保存修改以切换分支。
-
git stash
暂存当前分支的未提交修改,允许切换分支。
-
git stash pop
恢复最近一次暂存的修改,可在原分支或新分支应用。
-
git stash list
列出所有暂存记录。
6. 远程仓库操作
与远程仓库(例如GitHub)交互。
-
git remote -v
查看已配置的远程仓库信息。
-
git remote add origin
添加远程仓库,例如
git remote add origin https://github.com/username/repository.git
。 -
git remote remove
删除指定远程仓库连接。
-
git remote rename <old_name> <new_name>
重命名远程仓库连接。
-
git remote set-url origin <new_url>
修改远程仓库URL。
-
git push -u origin <branch_name>
推送本地分支到远程仓库并设置上游分支,例如
git push -u origin main
。 -
git push origin <branch_name>
推送指定分支到远程仓库。
-
git pull
从远程仓库拉取代码并合并到当前分支。等效于
git fetch
加git merge
。
7. GitHub特定操作
在GitHub上创建和管理仓库。
-
创建GitHub仓库
登录GitHub,点击"New Repository"创建新仓库,复制仓库URL。
-
git branch -M main
重命名默认分支为
main
(或自定义名称),例如从master
改为main
。 -
配置SSH密钥
8. 注意事项与最佳实践
- 分支隔离:除首次提交外,各分支独立,提交不会相互影响,除非执行合并或变基操作。
- 冲突解决 :合并冲突时,Git会标记冲突区域,需手动编辑文件,保留所需代码,删除冲突标记(如
<<<<<<<
、=======
、>>>>>>>
)。 - 谨慎使用rebase :
git rebase
会改写提交历史,公开分支上使用可能导致团队协作问题。 - 提交信息:编写清晰的提交信息,描述变更内容,例如"Fix login bug"或"Add user profile page"。
- gitignore :在项目初期创建
.gitignore
,忽略临时文件、依赖文件夹(如node_modules/
)等。 - 备份与安全:定期推送代码到远程仓库,避免本地数据丢失。