一、原理
平时写的代码放在本地仓库,根据情况上传到Github仓库。相当于可以把多个版本的代码放在云服务器上。别人也能看到。 也可以把Github上的代码下载到本地。
二、准备
确认电脑上安装了Git
打开命令提示符cmd,输入git --version
注册了Github账号
略
三、建远程仓库
1、点击页面右上角的“+”按钮,选择“New repository”。 2、填写仓库名称、描述等信息,点击“Create repository”按钮。
四、初始化本地仓库
1、打开文件资源管理器,到要上传的项目目录下,右键,点击Open Git bash here。
输入git init
也可以通过命令提示符导航到目录下,
cd /path/to/your/project
git init
此时会创建一个名为.git的隐藏文件夹,Git会用它来跟踪项目中的更改。
五、将本地仓库关联到GitHub远程仓库
通过git remote命令将远程仓库添加到本地仓库中
git remote add origin https://github.com/your_username/your_repository.git
把your_username换成你的用户名,把your_repository换成你的仓库名。
注:如果远程库不为空,就需要获取到远程库,和本地合并
git pull --rebase origin master
六、添加文件并提交更改
先把项目文件都添加到Git暂存区。
git add .
把更改提交到本地仓库
git commit -m "Initial commit"
注意:第一次提交的时候git会让你输入邮箱和用户名用于身份验证。
七、把本地仓库的代码推送到远程仓库
git push -u origin master
注意:第一次推送的时候git会让你输入Github用户名和密码用于身份验证。
注:网络原因导致失败
解决方法:1、直接取消网络代理
git config --global --unset http.proxy
git config --global --unset https.proxy
2、并且在host文件里添加github的地址
1)获取github地址
打开命令提示符cmd,输入ping github.com
获得IP地址:20.205.243.166
在文件资源管理器,通过该路径打开host文件C:\Windows\System32\drivers\etc\hosts,在文件末尾处添加20.205.243.166 github.com
然后保存,再试试
八、分支变化
我们通常会把本地仓库和远程仓库的master分支重命名为main分支。
1、先把本地的master分支重命名为main分支
git branch -m master main
2、再把main分支推送到远程仓库
git push -u origin main
此时你的远程仓库的默认分支可能还是master,就需要再更新一下默认分支。可以在github的页面上修改。
点击setting
在默认分支这里,切换到其他分支
选择切换到main分支,然后点击更新
点击同意
此时你的仓库默认分支就是main分支。
3、通知团队成员,统一更改默认分支
尤其是公共项目,需要团队合作,在更改之前要通知团队成员,确保一致。
4、一些可选的操作
1)如果你已经推送了main分支,但远程跟踪分支(如 origin/master)仍然存在,你可能需要重置它
git push origin --delete master
git push --set-upstream origin main
2)如果你之前已经将本地的master分支设置为跟踪远程的master分支,现在需要更新为跟踪新的main分支:
git branch --unset-upstream master
git branch -u origin/main main
3)如果master分支不要了,可以删掉。
git branch -d master
九、更新本地仓库和远程仓库的代码
又完成了一个功能,此时需要同步到本地仓库和远程仓库。
1、检查仓库状态
git status
2、代码放到暂存区
git add .
3、提交更新说明
git commit -m "更新了文件上传功能"
4、拉取当前分支最新代码
git pull
5、推送到远程分支
git push origin main
十、拉取远程仓库的开源项目
把Github上的开源项目克隆到本地仓库。
可以复制链接
然后在终端里面输入命令
git clone https://github.com/xxx/xxx.git
也可以直接download Zip下载到本地。
十、Git公钥私钥
待更新
遇到的问题与解决方案
文件太大导致push失败,加入ignore后还是报错
从 Git 历史中移除大文件
问题原因
.gitignore 只能防止未跟踪的文件被添加,但如果文件已经在 Git 历史记录中,.gitignore 不会自动移除它们。
解决方案 方案 1:重置并创建干净提交(推荐,如果这是首次推送)
# 1. 查看当前状态
git log --oneline
# 2. 移除所有已跟踪的文件(但保留本地文件)
git rm -r --cached .
# 3. 重新添加文件(.gitignore 会生效,大文件不会被添加)
git add .
# 4. 创建新的提交
git commit -m "移除大文件,只提交代码"
# 5. 如果之前已经 push 过,需要强制推送(⚠️ 会覆盖远程历史)
git push -f origin main
方案 2:使用 git filter-branch 重写历史(保留提交历史)
# 从所有提交中移除大文件
git filter-branch --force --index-filter `
"git rm --cached --ignore-unmatch '新下载的长尾词/*.csv' '新下载的长尾词/*.xlsx'" `
--prune-empty --tag-name-filter cat -- --all
# 强制推送
git push -f origin main
方案 3:创建新分支(最安全)
# 1. 创建新分支
git checkout --orphan clean-main
# 2. 添加所有文件(.gitignore 会生效)
git add .
# 3. 提交
git commit -m "初始提交(不包含大文件)"
# 4. 删除旧的 main 分支
git branch -D main
# 5. 重命名当前分支为 main
git branch -m main
# 6. 强制推送
git push -f origin main
推荐使用方案 1 或方案 3
方案 1 最简单,如果这是首次推送且可以接受重写历史,就用这个。 方案 3 最安全,不会影响本地其他分支。
验证
推送后,可以用以下命令验证大文件已不在历史中:
git log --all --full-history -- "新下载的长尾词/*.csv"
git log --all --full-history -- "新下载的长尾词/*.xlsx"
如果这两个命令没有输出,说明文件已从历史中移除。