抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

利用git工具实现GitHub远程仓库与本地仓库之间的同步非常重要。如果本地没有仓库,这样可以直接远程git clone,这是保持同步最简单的方法;但是如果本地有仓库并且是多端同步的方式,就不能简单通过git clone实现。在这里简单说明我遇到的情形:
远程仓库最新,本地仓库落后几个版本:

git fetch方式

在本地仓库下拉取最新版本,并且请求合并:

1
2
3
git fetch origin        # 拉取最新版本
# git status # 检查是否是最新版本(一般显示"Your branch is up to date with 'origin/main'"则是最新版本)
git merge origin/main # 请求合并

这样就实现了本地代码库保持最新版本。

这里的git status的作用是检查是不是最新,防止出现冲突。另外还能通过git log查看提交历史记录检查是否冲突:

1
2
git log -1                # 本地仓库最新1条提交
git log origin/main -1 # 远程仓库最新一条提交

查看代码差异:git diff

1
git diff HEAD origin/main     # 比较本地与远程仓库差异,无输出代表完全同步

git pull方式

git pull不推荐使用,因为他是一步操作,拉取的同时合并,不能提前检查是否存在冲突:

1
git pull origin main

2025.06.08更新:

git 强制回退到某个版本

1
2
3
4
5
6
7
8
# 首先获得git log的提交id(commit 后面的代码)
git log

# 然后选择你要回退的版本进行强制回退
git reset --hard c8461e98d220a292c96f5b2ff33a57cbe1a67c88

# 强制提交
git push -f -u origin main

另外还有一种更安全的方法,好处是保留提交记录

1
2
3
4
5
6
7
git log

# 撤销指定提交(生成一个新的反向提交)
git revert c8461e98d220a292c96f5b2ff33a57cbe1a67c88

# 正常推送(无需强制)
git push origin main

macOS的github密钥在终端ssh连接老是显示无权限

经过一番查找发现是没执行ssh-add导致的

1
2
3
4
5
# 临时解决方法,但是每次重启mac都会失效
ssh-add ~/.ssh/github_rsa

# 对于macOS来说,终极解决方法
ssh-add --apple-use-keychain ~/.ssh/github_rsa

评论



Powered by Hexo | Theme keep Volantis

本站总访问量 总访客数 🌎