Git同步

推送

# 推送
git push origin main # 向origin这个远程仓库推送main分支

# 推送main分支到origin的main分支
git push origin main:main

设置本地分支与codeup远程分支的跟踪关系
git branch --set-upstream-to=codeup/main main

# 后续直接使用
git push codeup

注意事项

  • 权限与冲突:需确保有远程仓库的写入权限,且本地提交不与远程分支冲突。
  • 强制推送:慎用 git push -f(强制推送),可能导致他人代码被覆盖,仅在明确后果时使用。
  • 分支管理:首次推送需指定远程分支(如 git push -u origin main),后续可直接 git push
  • 空推送:若本地无新提交,推送不会覆盖远程代码。

拉取

# 从远程仓库下载最新变更(如分支、标签、提交等),但不合并到当前工作分支
git fetch [remote] [branch]

注意事项

git fetch的默认行为是更新所有远程分支的本地副本,但并不会自动合并,需要手动执行git merge或git rebase来合并。

# 从远程仓库下载最新变更,并合并到当前分支
git pull [remote] [branch]
# 等价于git fetch + git merge(默认)

注意事项

  • 合并冲突:如果本地修改与远程提交冲突,需手动解决冲突后执行 git addgit commit
  • 合并策略:可通过 --rebase 参数改为变基(git pull --rebase),避免冗余合并提交。
  • 风险:直接拉取可能覆盖本地未提交的更改,建议先 git stash 保存临时修改。
  • 分支对应:确保本地分支与远程分支正确关联(如 git branch -u origin/main)。

关键对比与最佳实践

最佳实践

  1. 定期同步:先用 git fetch 查看远程变更,再决定是否合并。
  2. 避免直接 Pull:在重要操作前(如合并),先 git stash 保存本地未提交的修改。
  3. 分支策略
  4. 开发分支(如 dev)频繁 pull,主分支(如 main)谨慎 push
  5. 使用 git pull --rebase 保持提交历史线性。
  6. 冲突处理
  7. 冲突时手动编辑文件,标记已解决(git add),再提交。
  8. 使用 git merge --abortgit rebase --abort 终止未完成的合并/变基。

常见问题

  • Q: git pull 提示 "Already up to date" 但实际有更新?

A: 本地分支可能未跟踪远程分支,执行 git branch -vv 检查关联关系。

  • Q: 如何撤销错误的 git pull

A: 使用 git reflog 查找之前的提交,再通过 git reset --hard [commit] 回退。

  • Q: 推送时提示 "non-fast-forward" 错误?

A: 远程分支有新提交,需先 git pull 合并后再推送,或使用 git push -f(谨慎)。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
error: Content is protected !!