欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > git命令大全(持续更新)

git命令大全(持续更新)

2025/4/2 11:17:05 来源:https://blog.csdn.net/qq_42764906/article/details/146406385  浏览:    关键词:git命令大全(持续更新)

命令框语法:

一、最基本使用方法(最常用)

初试设置:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com" #github,gitee等的邮箱
核心初始操作:
git remote add origin https://github.com/yourusername/your-repo.git #用于初次为本地仓库添加远程仓库的连接修改远程仓库的 URL:(2个方案选择一个即可)git remote set-url origin <your_git_server_url>   # HTTPS方式修改    git remote -v   #检查修改是否成功git remote set-url origin git@github.com:your-username/your-repo.git #SSH方式修改ssh -T git@github.com #然后测试SSH连接对一个orihin添加多个url 仅push有效
git remote set-url --add --push origin <第一个远程仓库地址> #--add添加一个新的 URL,而不是替换现有的 URL。--push 表示这些更改仅针对推送(push)操作生效。
设置代理:(这个代理设置是在Vscode中需要设置的,笔者不确定在命令端是否需要,可以先不做设置,需要再做设置)git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global --unset http.proxy
git config --global --unset https.proxy
npm config delete proxy
注意:这个端口是本地梯子的代理的端口(比如vray里面设置的端口,或者谷歌浏览器中的设置代理的端口,端口+1,-1 之类的多试试)
参考文章:
git设置和取消代理:https://gist.github.com/laispace/666dd7b27e9116faece6  #上面代码查看的本篇文章,但文章中有小错误,上面的代码已经做正确的更改。
git设置代理:https://blog.csdn.net/m0_57567093/article/details/127455214

二、正常使用流程:

git init   #初始化仓库(如果git clone就不用初始化了) 在想传的代码目录下执行
git add .  #注意有空格
git commit -m "your message" # 提交暂存区的更改,并附上提交信息。
git push -u origin main  #origin是在本地给远程url命名的名字。main是要提交分支的名字
远程服务器代码(A)传远程服务器代码(B)可以 git clone A到本地。再git push 到B。 PS:应该用更简洁的语法。 
补充1:
git push  #将本地代码推送到远程仓库
git pull  #从远程仓库拉取最新代码并合并到本地分支git pull 其实等价于:git fetch origin main  # 拉取远程最新代码(从名为 origin 的远程仓库拉取 main 分支的最新提交信息到本地,不过本地的文件内容不会有实际改变)git merge origin/main  # 合并到本地分支(把之前通过 git fetch 获取到的远程 main 分支的最新提交合并到当前所在的本地分支)
补充2:
第一次运行推荐:
git push -u origin main      ||  origin是在本地给远程url命名的名字。(git remote -v 可以查看) || main是分支名字
等价于:git push --set-upstream origin main
它的作用是:第一次推送本地 main 分支到远程 main 分支。建立本地 main 分支和远程 main 分支的关联
以后可以直接使用:git push或者git pull,而不用每次都写 origin main。什么时候不需要 -u:
(1)如果你已经设置过 upstream(上游分支),直接运行:git push (第一次运行设置过了,或者特意之前设置好了)
手动设置 upstream:git branch --set-upstream-to=origin/main main
取消 upstream:git branch --unset-upstream(2)有一种情况 git clone就不需要 指定 -u origin main。其他情况都得写,指定origin main
也可以直接写git push origin main。但是每次都得 指定 origin main,写-u就一劳永逸了 上游分支(upstream branch) 是指 本地分支默认跟踪的远程分支:
查看当前分支的 upstream:git branch -vv

三、视频笔记

!!!视频:【狂神说Java】Git最新教程通俗易懂:https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.788.videopod.episodes&vd_source=62490e786f2d05c76576cee122805e39&p=9
语法:
.gitigore 配置过滤文件,哪些文件不提交,具体可以看视频git config -l                 #查看所有参数(--list和-l一样)
git config --system -l        #查看系统配置                          系统级配置文件路径:E:\git\Git\etc\gitconfig                   (可以搜索gitconfig去找)
cls                           #清屏(清理全屏),windows中cmd   
clear                         #清屏(清理全屏),linux中bash   
git config --global -l        #用户配置(本地配置,全局配置)            用户配置位置:C:\Users\Dell\.gitconfiggit log                       #查看日志git语法:
git init  本地初始化
git clone [url] 克隆代码git status                     #查看所有文件状态
git status [filename]          #查看指定文件状态 
git add .                      #添加所以文件到暂存区
git commit -m  “XXX”           #提交暂存区中的内容到本地仓库     "XXX" 提交信息      除非设置,否则-m不可以省略
git push                       #提交云端
git push origin  master        #提交云端  (origin 用户    master 分支)git branch                     #查看本地所有分支
git branch -a                  #查看本地和远程分支
git branch -r                  #查看远程分支
git branch -v                  #查看每个分支的最后一次提交信息
git branch -vv 和 git branch -vvv  #都是用于查看分支详细信息的命令。展示的信息丰富程度上有所差异。
git branch dev                 #新建分支
git checkout -b [branch]       #切换分支
git merge [branch]             #合并指定分支到当前分支
git branch -d [branch-name]    #删除分支
git push origin --delete [branch-name]   #删除远程分支
git branch -dr [remote/branch] #删除远程分支
git remote -v                  #查看当前远程仓库配置Untracked(未跟踪)
Unmodify(未修改)
Modified(已修改)
Staged(已暂存)|---------<------git add-------<--------------------------------------||                                                                                                      | 暂存区                                                                                                 |
Untracked(未跟踪)----git add--->Staged(已暂存)                                                                                ||                                               Unmodify(未修改)----主动修改或者 git reset HEAD filename--->Modified(已修改)                       |                                                     |  |   |                                                                                               ||                                                     |  |   ------<----git checkout- ----------------------------------------||------------<----git rm---------<--   |                    (取消修改回到上一个状态)(移出版本库)                 |git commit -m "XXX"  (文件再次变成  Unmodify(未修改))方向: 向下||本地库 --- git push ->云端库----git clone-->Unmodify(未修改)在 Git 里,git checkout  可以用于取消工作目录里文件的修改,不过在 Git 2.23 及之后的版本,更推荐使用 git restore 来完成这项操作。
git add  单个文件(使用:相对路径/绝对路径 都可以)
git add  文件夹(使用:相对路径/绝对路径 都可以)
Git 实际上跟踪的是文件而非文件夹本身,添加文件夹意味着会递归地添加该文件夹下的所有文件和子文件夹。git 
gitee 又叫 码云  IntelliJ IDEA 自动连接
github             VScode   自动连接
linux语法学习。(遇见狂神说)
自己搭建博客。

四、其他一些知识补充

同时向github和gitee 传:
方法一:每次切换时修改远程仓库 URL:
git remote -v 查看当前远程仓库配置
git remote set-url origin https://gitee.com/yourusername/your-repo.git  修改远程仓库 URL 到 Gitee
git push origin main  推送代码到 Gitee
git remote set-url origin https://github.com/yourusername/your-repo.git 若要切换到 GitHub,修改远程仓库 URL 到 GitHub
git push origin main 推送代码到 GitHub方法二:添加多个远程仓库
你可以为本地仓库添加多个远程仓库,分别指向 Gitee 和 GitHub,然后根据需要选择推送到哪个远程仓库。
git remote add gitee https://gitee.com/yourusername/your-repo.git 添加指向 Gitee 的远程仓库
git remote add github https://github.com/yourusername/your-repo.git 添加指向 GitHub 的远程仓库
git push gitee main 推送代码到 Gitee
git push github main 推送代码到 GitHub方法三:设置多个推送地址
如果你希望每次执行 git push 时,同时将代码推送到 Gitee 和 GitHub,可以设置多个推送地址。
git remote -v 查看当前远程仓库配置
git remote set-url --add --push origin https://gitee.com/yourusername/your-repo.git 添加多个推送地址
git remote set-url --add --push origin https://github.com/yourusername/your-repo.git 添加多个推送地址
git push origin main 推送代码
执行 git push 时,代码会同时推送到 Gitee 和 GitHub。
这种方式的优点是操作简单,只需一次 git push 就能同时更新多个远程仓库;缺点是如果某个远程仓库出现问题,可能会影响推送过程。
同时更新多个分支的内容:
方法一:逐个推送(依次对每个分支执行推送操作。)
git checkout branch1 # 切换到第一个分支并推送
git push origin branch1
git checkout branch2 # 切换到第二个分支并推送
git push origin branch2方法二:设置多个推送地址(适用于一次性将所有分支推送到多个远程仓库)
如果你有多个远程仓库,并且希望将所有本地分支的更新同时推送到这些远程仓库,可以设置多个推送地址。
git remote add another-origin1 <另一个远程仓库地址>  # 添加第二个远程仓库
git remote add another-origin2 <另一个远程仓库地址>  # 添加第三个远程仓库# 设置多个推送地址 (another-origin 可以自命名 ,其实origin也是可以自命名的)git push --all origin # 推送所有分支  (这里的 --all 选项表示推送所有本地分支到对应的远程分支。)
在远程创建分支:
1.通常的做法是 先在本地创建分支,然后推送到远程:
git checkout -b new-branch  # 创建并切换到 new-branch 分支
git push -u origin new-branch  # 推送 new-branch 到远程,并建立跟踪关系
查看远程分支是否创建成功:
git branch -r2.直接在远程仓库(GitHub/GitLab)手动创建分支:
远程创建后,在本地拉取 如果你在 GitHub 或 GitLab 上创建了 new-branch,在本地需要同步:
git fetch origin  # 拉取远程最新信息
git checkout new-branch  # 切换到新分支
git pull origin new-branch  # 获取最新代码方法 3:通过 git push 在远程创建分支(不先切换本地分支)
如果你不想切换分支,而是直接从当前分支创建一个远程分支:
git push origin main:new-branch  #main:new-branch 表示 在远程创建 new-branch,并基于本地 main 分支的内容。
然后在本地切换到这个新分支:
git checkout -b new-branch origin/new-branch
获取其他分支:
如果你想在本地操作远程仓库的其他分支,可以使用以下方法将其拉取到本地:方法一:手动创建并跟踪远程分支:git checkout -b dev origin/dev  # 创建本地分支并关联到远程分支(上述命令会创建一个名为 dev 的本地分支,并将其与远程仓库的 dev 分支关联起来,之后你就可以在本地对 dev 分支进行操作。)方法二:直接切换到远程分支(自动创建本地分支):git checkout origin/feature-1  # 直接切换到远程分支,Git 会自动创建本地分支并关联   (执行此命令后,Git 会自动创建一个与远程 feature-1 分支关联的本地 feature-1 分支,并切换到该分支。)
知识点补充:
1.对git的bash命令行,即便没有配置邮箱,仅凭借远程仓库的 URL ,从技术层面而言,也可以将代码推送到远程仓库。
2.如果远程 main 分支有更新,且本地没有同步,直接 git push 可能会失败,需要先 git pull。
3.git config -l 查看内容之后,回不到原来的bash界面
方法:命令输出内容较多,使用了分页工具:q 键
另外:终端卡住或异常: Ctrl + C 组合键
4.把本地 dev 分支的代码推送到远程的 src 分支:git push origin dev:src ( 如果远程 src 分支不存在,Git 会自动创建 src 分支。)
5.git push origin main:main 省略成 git push origin main
6.自己的代码托管平台(如 GitHub、GitLab 、Gitee)推送操作:git push 命令用于将本地的提交推送到远程仓库。这一步需要进行身份验证,但身份验证方式不一定是登录云端账户界面。例如使用 SSH 协议时,只要你本地的 SSH 密钥与远程仓库的配置匹配,就可以完成推送,无需在云端界面登录;使用 HTTPS 协议时,你可以使用个人访问令牌(如 GitHub 的 Personal Access Token)进行身份验证,也无需登录云端账户界面。
无那种开放账户,都是需要进行一些身份验证之类的。
6.分支(Branch):是指向某个提交对象的可变指针。它代表了一条独立的开发线路,允许开发者在不影响其他分支的情况下进行功能开发、问题修复等操作。每次提交时,分支指针会移动到新的提交对象上。
7.标签(Tags):是指向某个提交对象的不可变指针。它用于给特定的提交打一个有意义的标记,通常用于标记软件的发布版本、重要里程碑等,标签一旦创建就不会再改变。
8.注意:git commit -m "XXX" 的时候,在有.git的目录下执行。否则会直接打开下一级目录下对应的文件,让你去编辑之类的(比如:系统自动打开Vscode,不知道让你编辑什么鬼东西)。
9.另外:不同位置执行 git config -l  输出的内容是不一样的。(有.git的文件夹的内容就多。其他的文件夹 只有 基本的用户和系统的配置)

五、对VScode上的git操作:

git config --list  查看所有参数
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com  #会根据这个邮箱去找对应账户的github并登录授权
设置名字或者邮箱,如果设置错了就再重新输入一遍就行。
官网文章:https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
参考视频:给傻子的Git教程:https://www.bilibili.com/video/BV1Hkr7YYEh8/?spm_id_from=333.337.search-card.all.click&vd_source=62490e786f2d05c76576cee122805e39
设置代理:
https://gist.github.com/laispace/666dd7b27e9116faece6
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global --unset http.proxy
git config --global --unset https.proxy
npm config delete proxy
参考文章:
git设置和取消代理:https://gist.github.com/laispace/666dd7b27e9116faece6
pycharm上git的使用方法:
pycharm(IDEA,pycharm和IDEA是一家的)的学习方法:https://blog.csdn.net/a18307096730/article/details/124586216?spm=1001.2014.3001.5502

六、git语法训练平台的学习语法的记录

网址:https://learngitbranching.js.org/?locale=zh_CN
提交:
git commit -m "your message"  提交暂存区的更改,并附上提交信息。
git commit --amend    修改 上一次提交的内容(在不创建新提交的情况下)切换:
git checkout  <name> 切换分支或者节点合并:
git merge <source-branch>           切换到目标分支后,合并<source-branch>分支
git rebase  main  当前在bugFix分支上,命令执行之后,main和bugFix在一条线上,bugFix的上一级是main。当前位置是bugFix分支。移动:
git checkout main^  移动到main的上一次操作
git checkout HEAD~4  在当前的head位置向上移动4次改分支:
git branch <branch-name>            创建新分支
git branch -f main HEAD~3 强制将main的这个分支的()位置 移到HEAD向上移动3个位置 (将HEAD~3 替换成节点也是可以的 比如 C1(不是末分支名eg:bugFix))
git checkout -b <new-branch-name>   创建并切换到新分支。head脱离时候,执行了 git commit ,想保留这次提交记录 。输入这个命令,会创建新节点且head指向分支名(head归位)撤销:  C0->C1->C2   当前位置C2,即head位置   ||  head==HEAD ||  head^==head~1
git reset head^      (重置head^) 撤销本地分支   (直接删除C2, 变成C0->C1)(对大家一起使用的远程分支是无效的)
等价于 git reset C1git revert  HEAD   (恢复head)    撤销远程分支 (创建新状态C2',与状态C1状态一样,用于撤销C2的 ,变成 C0->C1->C2->C2')
等价于 git revert C2git branch -d <branch-name>        删除本地分支git cherry-pick <提交号>   把之前提交记录抓过来放 当前的HEAD的下面  (若夹在中间,创建新分支。否则顺接。其实核心还是顺着分支走。例子:杂项1)C0->C1->C2->C3->C4->C5  当前位置C5
git rebase -i  HEAD~4    对C2,C3,C4,C5 操作,可视化操作,直接弹出框  (-i是--interactive 的 缩写)【copy所选择的所有节点,按照操作去创建新分支,同时会带走原来这个分支的所有节点,保留分支名所对应的节点。】
等价于:git rebase -i C1    对C2,C3,C4,C5操作。

七、最后的记录

笔者自己的操作过程(可以不用看):
1.代理在使用Vscode的git的时候设置过了。
2.设置git代码托管平台的url_1,设置名字和邮箱。(不设置邮箱,也能使用,有一些网站要求提交需要有)
3.克隆(git clone)远程代码到本地仓库。
4.删除其他内容,保留.git就行。
5.之后 git checkout -b one  #建立one分支并转到one分支
6.git add .     
7.git commit -m "Add new feature"
8.git push -u origin one  【origin是本地设置的远程仓库的名字,one是分支】
【git config -l 中的参数 remote.origin.url=ip 可以 再 更改配置。  语法:(git remote set-url origin <your_git_server_url>        origin 和<your_git_server_url> 可以自己设置)9.加上github的url_2:(我想同时传2个代码托管平台)
git remote set-url --add --push origin ip_2
10.再git push。(但是发现只能往url_2上传)检查:
(1)$ git remote -v
origin  ip_1(fetch)
origin  ip_2 (push)
(2)git库所在文件夹的config文件:(好像也可以直接在这里改,但是笔者没有改)
pushurl = ip_211.再执行:
git remote set-url --add --push origin ip_2
git remote set-url --add --push origin ip_112.$ git remote -v
origin  ip_1 (fetch)
origin  ip_2 (push)
origin  ip_2 (push)
origin  ip_1 (push)注:
1.只能有一个push (应该是,有待考证)
更换push:git remote set-url origin <新的远程仓库地址>
2.ip_1,ip_2是真实url,因为敏感问题,才换成ip_1,ip_2检测不到一些文件的解决方法:
git status --ignored 查看下被忽略掉的文件有哪些
cat .gitignore 查看.gitignore文件 并 修改参考文章:
git 检测不到文件修改:https://blog.csdn.net/yy_diego/article/details/124318100

切换分支时候,相当于进入另一个文件夹,如果main原来有不属于的文件(非云端,自己加的)会删除,但是文件夹会保留并报错:
Dell@DESKTOP-LMCRSGF MINGW64 ~/Desktop/Demo (zero)
$ git checkout zero
warning: unable to rmdir 'windturbine_yolo': Directory not empty
branch 'zero' set up to track 'origin/zero'.
Switched to a new branch 'zero'
处理方法
1.手动清理目录:cd windturbine_yolorm -rf *  # 注意:这个命令会递归删除目录下的所有文件和子目录,请谨慎使用cd..git checkout zero2.忽略警告继续操作:如果 windturbine_yolo 目录中的内容是你希望保留的,并且不影响新分支的使用,你可以忽略这个警告,继续进行其他操作。Git 虽然发出了警告,但仍然成功切换到了新分支,说明它已经尽力处理了工作目录的状态。3.使用 git stash(暂存修改):如果 windturbine_yolo 目录中的文件是你正在处理的未提交的修改,你可以使用 git stash 命令将这些修改暂存起来,然后再切换分支。之后,在需要的时候可以使用 git stash apply 命令恢复暂存的修改。git stashgit checkout zerogit stash apply # 之后恢复暂存的修改总之,这个警告本身并不一定会阻止你继续使用 Git,但根据你的具体需求,你可能需要采取一些措施来处理 windturbine_yolo 目录,以确保工作目录的状态符合你的期望。正常下载会把所有分支下载下来,通过git checkout [branch-name] 查看所有分支内容。
但是下载下来只会显示main分支,切换分支会在本地创建分支 对应云端的分支。会自动创建对应分支。(但是云端的内容很早就下载下来了。)【当你使用 git clone 命令克隆一个仓库时,默认情况下只会克隆远程仓库的默认分支(通常是 main 或 master)到本地,而不是所有分支。不过,远程仓库上的其他分支信息其实也会被拉取下来,只是本地并不会为这些分支创建对应的本地分支副本。】但是上传的时候,如果不设置,默认只上传一个分支。git push -u origin  [branch---想上传的分支名字]

三个值得记录的点:
1.在自己的仓库查看配置文件(可以直接去对应文件夹里修改文件)
git config --system -l        #查看系统配置                          系统级配置文件路径:E:\git\Git\etc\gitconfig                   
git config --global -l        #用户配置(本地配置,全局配置)            用户配置位置:C:\Users\Dell\.gitconfig2.同时传2个代码托管平台遇到的问题
仅有一个git代码托管平台的时候:
$ git remote -v
origin  ip_1 (fetch)
origin  ip_1 (push)git remote set-url --add --push origin ip_2  #再加一个git代码托管平台$ git remote -v         
origin  ip_1 (fetch)
origin  ip_2 (push)       #这时候智能push一个平台解决办法:
git remote set-url --add --push origin ip_2
git remote set-url --add --push origin ip_1$ git remote -v
origin  ip_1 (fetch)
origin  ip_2 (push)
origin  ip_2 (push)
origin  ip_1 (push)
这时候就可以同时push2个git代码托管平台了3.部分代码传不上git代码托管平台  
真实原因: .gitigore 配置过滤文件,哪些文件不提交
但是要注意,不要只检测.git所在的目录,也要检测你的.git的所在目录的 一些子文件下是否有.gitigore 配置过滤文件检测不到一些文件的解决方法:
git status --ignored 查看下被忽略掉的文件有哪些
cat .gitignore 查看.gitignore文件 并 修改参考文章:
git 检测不到文件修改:https://blog.csdn.net/yy_diego/article/details/124318100

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词