Git常用命令
1. 进入本地仓库目录
打开终端(或 Git Bash),切换到仓库根目录:
1 | cd /path/to/your-repo |
2. 查看修改状态
检查哪些文件被修改:
1 | git status |
- 红色显示的文件表示已修改但未添加到暂存区。
3. 将修改添加到暂存区
添加单个文件:
1 | git add 文件名 |
或添加所有修改的文件:
1 | git add . |
再次运行 git status
,绿色显示的文件表示已添加到暂存区。
4. 提交修改到本地仓库
1 | git commit -m "描述你的修改内容(例如:修复登录页面样式问题)" |
-m
后跟提交信息,需简洁明确(推荐使用英文或中文)。
5. 推送修改到远程仓库
将本地提交推送到远程仓库(默认分支通常是 main
或 master
):
1 | git push origin 分支名 |
- 例如推送到
main
分支:1
git push origin main
6. 验证推送结果
- 访问远程仓库页面(如 GitHub),检查文件是否更新。
- 或通过命令查看远程状态:
1
2git log --oneline # 查看本地提交记录
git remote show origin # 检查远程仓库状态
常见问题
提交后发现漏了文件:
1
2
3
4# 继续修改文件,然后再次添加并提交
git add 漏掉的文件名
git commit --amend # 合并到上一次提交
git push -f origin 分支名 # 强制推送(仅限自己的分支)推送冲突(多人协作时可能发生):
1
git pull origin 分支名 # 先拉取远程最新代码,解决冲突后再推送
默认情况下直接使用 git clone
不会自动克隆子模块(submodule)。子模块信息虽然记录在 .gitmodules
文件中,但其代码需要额外操作才能同步到本地。
如何完整克隆包含子模块的仓库?
方法 1:递归克隆(推荐)
在克隆时添加 --recurse-submodules
参数,一次性递归克隆主仓库和所有子模块:
1 | git clone --recurse-submodules 仓库URL |
方法 2:克隆后初始化子模块
如果已经用普通方式克隆了主仓库,后续可以手动拉取子模块:
1 | # 进入主仓库目录 |
验证子模块
查看子模块目录是否包含文件(不再是空文件夹):
1
ls -la path/to/submodule
检查子模块状态:
1
git submodule status
常见问题
子模块更新失败:
- 确保子模块的仓库地址可访问(尤其是私有仓库)。
- 如果子模块本身也有嵌套子模块,使用:
1
git submodule update --init --recursive
切换分支后子模块内容异常:
主仓库切换分支时,子模块可能需要同步更新到对应提交:1
git submodule update --remote
子模块工作原理
- 主仓库只记录子模块的具体提交哈希,不保存子模块的代码。
- 子模块是独立的仓库,需要单独拉取和更新。
设置代理
git config –global http.proxy http://127.0.0.1:7080
git config –global https.proxy https://127.0.0.1:7080
取消设置代理
git config –global –unset http.proxy
git config –global –unset https.proxy
可以通过
git config -l
查看设置状态