前言
我想实现这样一样功能:
在公司,有个项目,太忙了时间不够写这个项目,所以周末我想在家里也进行工作,但是项目的git是在公司的,在家里访问不了,所以我想在github上创建一个项目,然后把公司项目push到github,且需要github上有所有的之前的提交记录,然后我回到家就可以从github上继续工作,且代码也提交到github上,到了上班时间回到公司后,把公司的项目也切换到github,以便获取最新代码,然后再切换回公司的git把最新提示push到公司git,这样行的通吗?具体要怎么操作?只是简单改git地址进行push和pull就行了吗?
答
这个方案完全行得通!这是一个很常见的需求。你的思路基本正确,但不只是简单改地址,有几个细节需要注意。让我给你画个流程图,再详细说明操作步骤。

你的方案完全可行!下面是具体操作步骤。
第一步:在 GitHub 创建私有仓库
登录 GitHub,新建一个 Private 仓库(推荐私有,保护公司代码),不要勾选初始化 README。
第二步:在公司电脑添加 GitHub 为第二个远端
不需要修改原来的公司 Git 地址,只需添加一个新的 remote:
bash
bash
# 查看当前的远端(通常是 origin 指向公司 git)
git remote -v
# 添加 GitHub 为第二个远端,取名 github
git remote add github https://github.com/你的账号/仓库名.git
# 把完整历史(所有分支)推送到 GitHub
git push github --all
git push github --tags
这样你同时有两个 remote:origin(公司)和 github(GitHub),互不干扰。
第三步:回家从 GitHub clone
bash
bash
git clone https://github.com/你的账号/仓库名.git
cd 仓库名
# 正常开发,提交到 GitHub
git add .
git commit -m "feat: xxx"
git push github main # 或者直接 git push origin main,因为 clone 下来 origin 就是 github
第四步:回公司后同步最新代码
bash
bash
# 在公司电脑,从 GitHub 拉取最新代码
git pull github main
# 然后推送到公司 Git
git push origin main
几个关键细节
关于 SSH vs HTTPS: 如果公司网络有限制,优先用 HTTPS + token 访问 GitHub。去 GitHub → Settings → Developer settings → Personal access tokens 生成一个 token,push 时用 token 当密码。
关于分支: 建议在家用一个独立分支(比如 home-dev),回公司后合并到主分支再推公司 git,更清晰。
关于 .gitignore: 检查项目里有没有敏感配置文件(比如数据库密码、内网服务地址)记得加进 .gitignore 或者用环境变量替代,不要推到 GitHub。
关于家里的 remote 命名: 家里 clone 下来之后,origin 默认指向 GitHub。如果以后想直接在家里也访问公司 git,也可以手动 git remote add company 公司git地址,但在家里一般不可达,留着不用也没关系。
总结:核心操作就是两个 remote 并存 ,origin 留给公司,github 指向 GitHub,push/pull 时指定名字就好,历史记录完整保留,非常稳。