Skip to content

应用示例

更换远程仓库

更换Git远程仓库:比如,将Github的仓库迁移到Gitee上。

sh
# 先从Github将项目拉下来
git clone https://github.com/xxx/xxx.git

# 进入项目查看远程仓库地址
cd xxx && git remote -v

# fetch代表拉取代码的地址,push代表推送代码的地址
origin  https://github.com/xxx/xxx.git (fetch)
origin  https://github.com/xxx/xxx.git (push)

# 删除Github远程仓库地址
git remote remove <远程仓库名>

# 添加Gitee远程仓库地址
git remote add <远程仓库名> <远程仓库URL>

# 确认已经设置了正确的远程仓库
git remote -v

# 推送代码,--all代表所有分支
git push <远程仓库名> --all

修改文件权限

GIT 仓库中经常会放一些可执行脚本,但是拉取后却发现没有可执行权限,还需要手动添加权限。

sh
# 查看文件权限信息
git ls-files --stage
# 644代表权限(r=4, w=2, x=1)
100644 6a5da4d737b0e90f6dc96ebca7d889aa0423e061 0       scripts/start.sh
100644 858aba42d858832651433ef2d1767b525add909c 0       scripts/stop.sh

# 增加可执行权限
git update-index --chmod +x scripts/start.sh
# 修改为755
100755 6a5da4d737b0e90f6dc96ebca7d889aa0423e061 0       scripts/start.sh

清除GIT缓存

如果某个文件已经被纳入版本控制并且已经提交到 Git 仓库中,即使将其添加到 .gitignore 文件中,Git 仍然会跟踪该文件。

sh
# 清除缓存
git rm -r --cached .

# 添加暂存
git add .

同时维护两个仓库

在实际开发中,可能会遇到需要同时将代码推送到两个 Git 仓库的场景,例如将代码推送到 GitHub 和公司内部的私有仓库。

sh
# 添加第二个远程仓库
# 假设你已经有一个主远程仓库(默认名称是 origin)
# 你可以通过以下命令添加一个新的远程仓库,例如命名为 backup:
git remote add backup <第二个仓库的URL>
# 可以通过以下命令查看远程仓库列表:
git remote -v
# 输出:
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)
backup  https://gitlab.com/user/repo.git (fetch)
backup  https://gitlab.com/user/repo.git (push)

# 远程仓库拉取代码到本地
# 有冲突则需要手动合并
git pull origin main
git pull origin main

# 推送代码到两个远程仓库
# 你可以分别推送代码到两个仓库:
git push origin main
git push backup main
# 如果两个远程仓库的分支一致,可以用以下方法一次性推送到所有远程仓库:
git push --all origin
git push --all backup

# 配置多个远程仓库的默认推送
# 如果希望推送时自动更新两个仓库,可以使用 Git 配置文件 实现。
# 编辑 .git/config 文件,在 [remote "origin"] 部分添加 url:
[remote "origin"]
    url = https://github.com/user/repo.git
    url = https://gitlab.com/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
# 完成后,运行以下命令即可同时推送到多个仓库:
git push origin main