0


git常用的命令集

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 产品文档

标签: git

本文转载自: https://blog.csdn.net/weixin_45102459/article/details/135149438
版权归原作者 北京小农 所有, 如有侵权,请联系我们删除。

“git常用的命令集”的评论:

还没有评论