拓冰建站拓冰建站
首页 / 资讯中心 / 正文

This is a test repo.

This is a test repo.【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wikiThis repo includes some c codes.readme-refactor 分支下的自述文件 markdown # Code Library This repo includes some c codes.master分支下的自述文件# This is a code library. This repo includes some c codes.此时运行git merge readme-refactorGit 提示出现了合并冲突。执行git status可以查看是哪些文件引发了冲突$ git status On branch master You have unmerged paths. (fix conflicts and run git commit) Unmerged paths: (use git add file... to mark resolution) both modified: README.md no changes added to commit (use git add and/or git commit -a)如何解决冲突对于每个发生冲突的文件Git 都会在文件中加入标准的冲突解决标记。比如本例的README.md打开后它长这样 HEAD # This is a code library. # Code Library readme-refactor This repo includes some c codes.作为分界线将两个分支的内容隔开 HEAD标记和之间是 HEAD 指针master分支的内容和 readme-refactor之间是readme-refactor分支的内容。解决方法是通过编辑文本处理冲突删除这些冲突标记保存文件将文件纳入暂存区后提交$ git add README.md # 将发生冲突的文件纳入暂存区 $ git commit [master fe92c6b] Merge branch readme-refactor into master其他合并方式Squash 与 Rebase默认情况下Git 采用Merge合并方式合并两个分支将分支 B 并入分支 A 时会把 B 分支的所有 commit 并入 A 分支的提交历史中。除此以外Git 还提供了两种合并方式。Squash压缩使用 Squash 方式将分支 B 并入分支 A 时B 分支上的所有更改会被合并为一次 commit 提交到 A 分支。在git merge中加入--squash参数即可使用 Squash 方式$ git merge branch --squash注意执行上述命令后Git 只会将 B 分支的所有更改存入 A 分支的暂存区缓冲区内接下来还需要执行一次git commit完成合并工作。使用 Squash 合并可以简化 commit 记录但会丢失具体到每一次 commit 的信息每次 commit 的提交者、每次 commit 的更改等只留下合并为一个整体的信息原每次 commit 的提交者会以 Co-authored-by 的形式在提交信息中列出。如果是在 GitHub 上进行 Squash and Merge原有的信息都可以在对应的 Pull Request 中查看。Rebase变基使用 Rebase 方式将分支 B 并入分支 A 时B 分支上的每一次 commit 都会单独添加到 A 分支而不再像 Merge 方式那样创建一个合并 commit。操作步骤首先切换到 B 分支将 B 分支变基到 A 分支$ git checkout B $ git rebase A然后切回 A 分支再执行一次git merge即可完成将 B 分支内容合并到 A 分支的工作$ git checkout A $ git merge B使用 Rebase 完成合并可以让提交历史线性化在适当场景下正确使用可以达到比 Merge 更好的效果。但这样做会改变提交历史在进行 Rebase 时和 Rebase 后再进行相关合并操作时都会增加出现冲突的可能操作不当反而会使提交历史变得杂乱。因此如果对 Rebase 操作没有充分了解不建议使用。管理远程仓库在本地完成更改后可能需要将这些更改推送到 GitHub 等 Git 仓库托管平台。托管在这些平台上的仓库归属于远程仓库的范畴——你可以从这些仓库获取信息也可以将更改推送上去。与其他人的协作离不开远程仓库。远程仓库的查看使用git remote可以查看当前仓库的远程仓库列表。如果当前仓库是克隆来的一般会有一个名为origin的远程仓库其链接就是克隆时使用的链接$ git remote origin查看某个远程仓库的详细信息$ git remote show origin * remote origin Fetch URL: gitgithub.com:OI-wiki/OI-wiki.git Push URL: gitgithub.com:OI-wiki/OI-wiki.git HEAD branch: master Remote branches: git tracked master tracked ...远程仓库的配置git remote提供了一系列子命令来管理远程仓库命令作用git remote add name url添加一个名字为name、链接为url的远程仓库git remote rename oldname newname将名为oldname的远程仓库改名为newnamegit remote rm name删除名为name的远程仓库git remote get-url name查看名为name的远程仓库的链接git remote set-url name newurl将名为name的远程仓库的链接更改为newurlOI Wiki 实践根据 README.md 中的说明本仓库在 GitHub 与 Gitee 两个平台均有镜像克隆时可通过不同的远程仓库链接获取源码这正是git remote管理多远程仓库能力的典型应用场景。从远程仓库获取更改远程仓库中其他人可能会推送一些更改执行git fetch可以将这些更改获取到本地$ git fetch remote-name # 获取 remote-name 的更改注意git fetch只会获取远程仓库的更改而不会将这些更改合并到本地仓库中。如果需要将这些更改合并可以使用git pull。在默认情况下git pull相当于git fetch后git merge FETCH_HEAD$ git pull remote-name branch # 获取 remote-name 的更改然后将这些更改合并到 HEAD将更改推送到远程仓库使用git push将本地更改推送到远程仓库$ git push remote from:to # 将本地 from 分支的更改推送至 remote 的 to 分支根据远程仓库的要求可能会要求输入远程仓库账户的用户名和密码。更改能成功推送需要满足两个条件你拥有向这个仓库分支的写入权限你的这个分支比远程仓库的相应分支新即没有人在你进行更改的这段时间推送了新更改。当远程分支有当前分支没有的新更改时可以先执行git pull完成合并再推送。如果需要强制将本地分支的更改推送到远程仓库可以加入-f参数——但此时远程仓库的提交历史会被本地的提交历史覆盖该命令应谨慎使用。更好的选择是使用--force-with-lease参数该参数仅在远程仓库没有更新时才会进行覆盖。注意「更新」是相对于上一次 fetch 而言的如果使用了 VS Code 提供的 Auto Fetch 功能可能在没有注意到更新的情况下使--force-with-lease和-f一样危险。追踪远程分支通过将一个本地分支设定为追踪远程分支可以方便地查看本地分支与远程分支的差别并简化与远程分支交互时的操作。步骤如下先执行git fetch remote-name将远程仓库的信息抓取到本地执行git switch remote-branch会在本地自动创建名字为remote-branch的新分支并设定该分支自动追踪相应的远程分支。注意只有当本地不存在该分支且恰好只有一个远程分支的名字与该分支匹配时Git 才会自动创建该分支并设定其追踪相应的远程分支。此时执行git status会提示当前分支与远程分支之间的差别。因为设定了追踪关系推送命令也被简化了——只需执行git push本地分支上的更改就能被推送至其追踪的远程分支。对于本地已有的分支也可以设定其对应的远程追踪分支在当前分支下执行git branch -u remote-name/remote-branch即可设定当前的本地分支追踪该远程分支。使用 ssh 连接与 HTTP(S) 相比使用 ssh 连接到远程仓库更为方便安全。使用 ssh 连接前需要先在本地添加 ssh 密钥再将本地密钥的公钥上传到远程仓库账户。GitHub Docs 提供了完整的「Connecting to GitHub with SSH」教程建议读者按官方步骤操作。完成配置后即可通过 ssh 连接到远程仓库。下面是一条通过 ssh 连接 cloneOI Wiki仓库的命令$ git clone gitgithub.com:OI-wiki/OI-wiki.git【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wiki创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门