################### Git 使用场景速查 ################### 我想要撤销刚才的一个提交 ========================= 此时如果未push到远程,撤回提交用 ------------------------------------ .. code-block:: bash git reset --soft HEAD~1 此时如果已经push到远程 ------------------------------------ - 先撤回推送到远程的提交:``git reset --soft `` - 然后撤回本地的提交: ``git reset --soft HEAD~1`` - 再强制推送到远程: ``git push origin main --force`` 我想要合并时接受所有远程的修改,不保留所有本地更改 =================================================== - 确保你在正确的分支。``git checkout `` - 拉取远程更改。``git fetch origin.`` - 重置到远程分支。``git reset --hard origin/`` 误将最新的一个提交撤回了,此时本地还有未提交的更改,如何解决? =============================================================== - 查看 ``git reflog``。 - 使用 ``git stash`` 保存当前更改。``git stash push -m ``。此时会将所有更改保存到给 git 的 stash 中。 - 执行 ``git cherry-pick <你想要恢复的commit id>``。 - 还原提交到 stash 中的更改。``git stash pop`` .. note:: 选择一个commit 应用到当前分支。``git cherry-pick ``。 我想用dev分支的a.c文件覆盖main分支的a.c文件,如何做? ===================================================== - 切换到 main 分支。``git checkout main``。 - 替换 ``git restore --source=dev a.c`` 我想比较main分支和dev分支有多少文件差异 ======================================== 输入 .. code-block:: bash git diff main dev --stat 输出 .. code-block:: bash 1396@work03 xs9933.sdk]$ git diff main dev --stat .gitignore | 1 + build/Makefile | 16 +- include/ni_comm_mci.h | 8 +- include/sdk_mci.h | 17 +- sample/build/Makefile | 3 +- sample/include/cmd.h | 1 + sample/include/sample_comm_mci.h | 2 +- sample/include/sample_reg_cfg.h | 5 +- sample/src/i2c_rw.c | 94 +++--- sample/src/sample_comm_mci.c | 339 +++++++++++++++----- sample/src/sample_main.c | 125 ++++++-- src/mci.c | 264 +++++++++++----- src/mci.h | 102 ++++-- src/mci_data.c | 1257 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- src/mci_data.h | 62 +++- src/mci_drv.c | 2821 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- src/mci_drv.h | 26 +- 17 files changed, 4237 insertions(+), 906 deletions(-) [1396@work03 xs9933.sdk]$ 我想要快速查看远程是否更新 =========================== .. code-block:: bash git fetch origin # 查看当前分支是否领先/落后远程(粗略查看) git status # 查看远程新增了哪些提交(详细查看) git log HEAD..origin/main --oneline