1.下拉远端代码:
远端分支操作:
git remote #查看远端分支
git remote -v #查看远端分支详细信息
git remote add <远端分支名> <https链接> #增加远端分支,远端分支名可自定义通常定义为origin
下拉远端资源:
git clone <https链接> #克隆默认分支
git clone -b <分支名> <https链接> #克隆指定分支
git checkout -b release1 origin/release #本地依赖远端release分支创建本地release1分支
2.同步远端最新分支
方法1:fetch + rebase(推荐)
git fetch origin release #这个命令会从远程仓库 origin 中获取名为 release 的分支的最新提交,但不会将其合并到本地分支。它只会更新远程分支的引用,使得您可以查看远程分支的最新状态
git rebase -i origin/master #fetch之后需要rebase命令将这些更新合并到当前分支。例如:以origin/master为基准比较同步当前未提交远端的修改,解决完冲突git add 需要 git rebase --continue
方法2:fetch
git fetch origin release:release1 #这个命令会从远程仓库 origin 中获取名为 release 的分支的最新提交,并将其合并到本地的 release1 分支
方法3:pull
git pull --rebase #这个命令以远端为基准合并当前修改,rebase如果有冲突解决冲突add后需要git rebase --continue
git pull origin master:master1 #将远端master分支直接应用到本地master1分支
注:在执行 git pull 命令时,Git 会自动执行 git fetch 操作,以获取远程仓库的最新提交。因此,您不需要显式地执行 git fetch 命令来限制性地获取更新。
3. 本地分支创建切换
git branch #查看当前本地分支
git branch <branchname> #创建本地新分支
git branch -D <branchname> #删除本地分支
git checkout <branchname> #切换当前分到目标分支
git checkout -b <branchname> #切换当前分支到目标分支,如果目标分支不存在则自动创建
git checkout -b release origin/release #切换当前分支到release分支,如果不存在依赖远端release分支创建当前分支
4.查看代码变动
git status #查看未提交文件的变动
git diff #查看未提交文件详细变动
git diff commitId1 commitId3 #查看两个已提交的commit详细变动
git diff >> ~/patch.diff #生成patch补丁文件
git apply #命令用于将补丁文件应用到当前工作目录或暂存区中,补丁文件可以是以 .patch 或 .diff 结尾的文件,其中包含了要应用的更改内容
git diff <branch1> <branch2> #比较2个分支代码
git show #查看最新提交的commit变动
git show commitId1 #查看指定提交的commit变动
git show --stat #查看commit文件修改列表
5.临时保存本地修改
git stash // 保存当前工作目录的临时状态
git stash save "描述信息" // 保存当前工作目录的临时状态,并添加描述信息:
git stash list // 查看已保存的 stash 列表
git stash apply // 应用最新的 stash
git stash apply <stash_id> // 应用指定的 stash
git stash drop // 删除最新的 stash
git stash drop <stash_id> // 删除指定的 stash
git stash pop // 应用最新的 stash 并且 从stash 列表中删除最新的 stash
6.将工作区代码保存至暂存区
git add . #保存所有变动
git add -A #保存所有变动
git add <filename1> <filename2> #保存指定文件变动
git add <folder1> <folder2> #保存指定目录变动
git restore <file> #取消当前文件修改
7.提交暂存区内容至本地分支
git commit -sm "msc" #提交至当前分支版本库,带签名
git commit --signoff #提交至当前分支版本库,可添加MSC信息、账户邮箱,ISSUE信息
git commit --amend #提交至当前分支,可以沿用前面的提交信息(一般二次提交选用或查看提交明细选用)可修改
git commit --amend --no-edit #提交至当前分支,默认沿用前一次提交信息不做修改
git mv --cached <file> <file1> #命令用于重命名或移动文件,并将这个操作记录到 Git 的暂存区(Index)中,--cached不修改工作区
git rm --cached <file1> #命令用于从 Git 的暂存区(Index)中移除指定的文件,而不会删除工作目录中的实际文件,--cached不修改工作区
8.查看代码提交记录
git log #查看全部提交日志
git log --stat #查看全部提交的文件修改列表日志
git log <commit> --stat #查看指定提交前的文件修改列表日志
git reflog #引用日志记录了本地仓库中的引用(如分支、标签等)的变动历史,包括创建、删除、重命名等操作
git show #查看最新commit文件修改内容
git show --stat #查看最新commit文件修改列表
git show <commit> --stat #查看指定commit文件修改列表
9.回退代码至某已提交节点
git reset --hard origin/master #回退到远端master分支的最新commit提交,放弃当前工作区修改
git reset HEAD~1 #撤销最近的一次提交,并将更改保留在工作区中。这将移动当前分支的指针到上一个提交,并取消暂存区的更改
git reset --hard HEAD~1 #撤销最近的一次提交,并丢弃工作区和暂存区的所有更改。这将移动当前分支的指针到上一个提交,并重置工作区和暂存区为该提交的状态
git reset <commit> #将当前分支的指针移动到指定的提交,并保留更改在工作区中。这可以用于撤销多个提交或将分支指向不同的提交
git reset 或 git reset HEAD #取消暂存区的所有更改,但保留工作区中的更改。这可以用于将文件从暂存区移回工作区,以便重新编辑或排除文件。
注:--hard 丢弃工作区修改
10.将指定提交应用到当前本地分支
git cherry-pick <commit> #用于选择性地将指定的提交应用到当前分支上
git cherry-pick --continue #这个命令将告诉Git继续应用之前被中断的cherry-pick操作,并继续处理下一个提交
git cherry-pick --abort #这个命令将告诉Git取消当前正在进行的cherry-pick操作,并将您的代码库恢复到操作之前的状态
git cherry-pick --skip #这个命令将告诉Git跳过当前正在进行的cherry-pick操作,并继续进行下一个提交的cherry-pick。它会将当前提交标记为已处理,但不会将其应用到当前分支
11.推送代码
git push origen master1:master #从本地master1分支推到远端origen的master分支
git push -f origen master1:master #从本地master1分支推到远端origen的master分支(强制)
git push -f origen HEAD:master #从本地当前分支推到远端origen的master分支(强制)
git branch --set-upstream-to=<remote>/<branch> master1 #关联master1到远端分支
12.场景示例:
commit5 9b***********************************bc1 (HEAD -> master1)
commit4 9b***********************************bc2 (origin/master)
commit3 9b***********************************bc3
commit2 9b***********************************bc4
commit1 9b***********************************bc5
场景1: 修改commit4的提交签名
git rebase -i commit3 // 回到commit4操作位置
git commit -s --amend // 增加签名
git rebase --continue // 继续执行continue
场景2: 将commit5合并到commit3中
git reset commit5 // 撤销commit5,保留工作区
git stash // 保存临时修改
git rebase -i commit2 // 回到commit3操作位置 支持edit编辑 、s合并(相邻2条提交)、drop删除操作
git stash pop // 应用临时保存并删除保存记录
git add . // commit1提交至缓冲区
git commit --amend --no-edit // commit1提交至commit3上
git rebase --continue // 继续执行continue
git push -f origin HEAD:master // 强推远端master分支
场景3:git cherry-pick <commit>
作用:命令用于将一个特定的提交应用到当前分支的最新状态上,尤其是在你需要从另一个分支中提取某个特定更改(提交)并应用到当前分支时
例如,如果你有一个名为 feature-branch 的分支,并且你想把其中的一个提交应用到 main 分支上,你可以这样做:
git checkout main // 切换到 main 分支
git cherry-pick feature-branch^3 //feature-branch^3 指的是 feature-branch 分支上的第三个最近的提交
gitee相关参考引用:SSH 公钥设置 | Gitee 产品文档
版权归原作者 北京小农 所有, 如有侵权,请联系我们删除。