记录一些常见的git操作下载代码下载git clone [代码链接]查看分支git branch -a会显示remotes/origin/XXX其中XXX是你远程分支的名称切到已有分支git checkout [远程分支名]新建分支并关联远程分支git checkout -b [本地分支名] origin/[远程分支名]拉取某笔提交的代码方法1git checkoutgit fetch https://xxx refs/changes/98/33598/1 git checkout -b change-33598 FETCH_HEAD创建change-33598分支作为临时拉取到本地不会对本地分支有影响撤销这次修改的话需要使用git branch -D change-33598删除当前拉取的分支。方法2git cherry-pickgit fetch https://xxx refs/changes/98/33598/1 git cherry-pick FETCH_HEAD这种方式没有创建新分支而是直接合并到当前分支撤销这次修改的话需要使用git reset --soft HEAD~1回退这一次修改。其中refs/changes/98/33598/1最后的1表示在当前提交上的第几次修改一般我们是直接用最新的。拉取多笔提交合并方法1git checkout# 1. 拉取第一个CR创建分支gitfetch https://xxx refs/changes/98/33598/1gitcheckout-bchange-33598 FETCH_HEAD# 2. 拉取第二个CR只fetch不切走gitfetch https://xxx refs/changes/80/33480/1# 3. 把第二个CR合并到当前分支gitmerge FETCH_HEAD例如先git fetch 某笔提交1 refs/changes/98/33598/1 git checkout -b change-33598 FETCH_HEAD然后想保留上一次的git fetch并且带上git fetch 另一笔提交2 refs/changes/80/33480/1 git checkout -b change-33480 FETCH_HEAD1.先拉取并创建第一个变更git fetch 提交1 refs/changes/98/33598/1 git checkout -b change-33598 FETCH_HEAD执行完后你现在在 change-33598 分支上。2.拉取第二个变更但不切换分支git fetch 提交2 refs/changes/80/33480/1这里千万不要加git checkout -b change-33480 FETCH_HEAD加了就会切换走你的 33598 就不在当前分支了3.把第二个变更合并到当前的 33598 上git merge FETCH_HEAD这一步会把33598当前分支和 33480刚 fetch 下来两个变更合并在一起。方法2git cherry-pick推荐直接拉取多笔提交到本地即可。拉取提交1git fetch https://xxx refs/changes/98/33598/1 git cherry-pick FETCH_HEAD拉取提交2git fetch https://xxx refs/changes/80/33480/1 git cherry-pick FETCH_HEAD提交代码添加git add [需要提交的代码路径]提交git commit -m 一些骚话pushgit push origin HEAD:refs/for/[远程分支名]git push --no-thin origin HEAD:refs/for/[远程分支名]通过diff文件同步修改用diff导出差异文件git diff [需要同步代码根目录] 文件名.diff用apply命令同步差异git apply --reject [你需要同步diff文件]查看diff文件中的改动信息git apply --stat [diff文件]代码重置有时候提交太乱导致git pull拉取代码时出现异常可以尝试重置代码#获取远程仓库的最新信息gitfetch origin#执行硬重置将本地分支强制指向远程分支的最新提交gitreset--hard[你当前的分支如origin/main]#本地的未跟踪文件如编译产物也一并清理掉gitclean-fxd