Git基础常用命令
注册相关:
git config --global user.name "输入用户名(不要汉字)" --------注册全局Git仓库的用户名
git config --global user.mail "输入邮箱" --------注册全局Git仓库的邮箱地址
(注意如果需要当前Git仓库指定另外的用户名和邮箱地址,请在目标仓库打开git bash here后再进行输入,同时去掉全局参数--global,这样就可以为Git仓库指定一个不同于全局变量的用户名和地址)
::如需要简化长串指令,可自行查找git别名去设置:如 git-log == git log --all --pretty=oneline --graph
创建相关:
git init --------把当前文件夹当成一个git仓库(取决于你在哪个文件夹打开git bash here并且输入这一段命令),生成一个隐藏的.git文件夹
推送相关:
git status --------查看当前仓库下的情况(用于检查文件是否被提交)
红色:处在工作区的文件
绿色:处在暂存区的文件
git add 文件名.后缀 --------添加目标文件进入到暂存区(使用通配符.可以添加当前文件夹内所有的文件)
git commit -m "提交备注(建议不要中文)" --------提交暂存区的文件
git log 参数 --------查询提交日志(内含提交作者及其邮箱,日期时间,及其提交备注)
参数可选为(可以叠加使用,以空格隔开):
--all ——显示所有分支
--pretty=oneline ——提交信息显示为一行
--abbrev-commit ——让输出的commitID更简短
--graph ——以图的形式显示
git reset --hard commitID ——版本回退到指定的commitID(commitID可通过git log查询)
git reflog ——查看删除的记录(各种提交的记录或是删除的记录)
(如果有些文件放着你不需要它提交,可以通过编写一个.gitignore的txt文件[如果集成到IDEA中,有些会自动添加],列出需要忽略的文件/文件模式即可,下列提供一个参考的忽略模板):
# Created by .ignore support plugin(hsz.mobi) ### Java template *.class # Mobile Tools for java(J2ME) .mtj.tmp/ # Package Files *.jar *.war *.ear *.zip #virtual machine crash logs,see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .idea *.iml*.bak *.class *.rar *.log *.project *.settings *.classpath target classes lib *.DS_Store .gradle build out log
分支相关:
此处指的是:三行操作记录在分支master都包含,而分支dev01只包含了第二、三行的操作记录,同时HEAD表示此时正在dev01分支下。
此处指的是:两行操作记录,分支master和分支dev01都共同拥有,且此时在分支master下。
此处指的是:分支dev01拥有第一、三、四行的操作记录,分支master和dev02拥有第二、三、四行的操作记录。
此处指的是,分支master拥有全部的操作记录,分支dev01有第二、三、四、五行的操作记录,dev02有第三、四、五行的操作记录。
git branch ——查看分支
git branch 分支名(英文为佳) ——创建一个分支
git checkout 分支名 ——切换到指定的分支(通过查看git log可以发现,HEAD -> 分支名,HEAD指向的是当前进行处理的分支名)
git checkout -b 分支名 ——创建并切换到指定的分支
git merge 分支名1 ——把分支名1的提交记录合并到当前分支中(HEAD指向的分支),也叫合并分支(通常合并到master上)[如进入vi编辑器,按ESC后,输入:wq]
(合并发生冲突,解决:①手动处理文件中冲突的地方[保留谁的数据?还是都不保留,用新的数据?]②add③commit)
git branch -d 分支名 ——删除分支,其中会做检查
git branch -D 分支名 ——强制删除分支,不做任何检查
/*
分支规范:
master ——生产分支(上线)
develop ——开发分支(完成后合并到master准备上线)
feature/xxxx ——从develop创建的分支,完成后合并到develop中
hotfix/xxxx ——master的派生分支,用于线上bug修复,完成后要合并到master、test、develop等分支中
还有诸如:test(代码测试分支)、pre(预上线分支)等待
*/
远程仓库相关(GitHub或是Gitee):
Gitee:
ssh-keygen -t rsa ——生成SSH公钥(不断回车即可,如公钥已经存在,会自动覆盖)[在任意地方打开Git bash here输入即可]
cat ~/.ssh/id_rsa.pub ——获取生成的公钥
(把获取的公钥贴到gitee个人设置里面的SSH公钥的添加公钥内,标题随便起个方便自己辨认的名字)
ssh -T git@gitee.com ——验证公钥是否配置成功(首次验证需要输入yes)
自己创建一个gitee仓库(不会?自行百度),创建成功后进入仓库最上面会有一段地址,有HTTPS和SSH可选,选择SSH,复制地址。
接着在自己的本地仓库内,右键打开git bash here:
git remote add origin 远程仓库地址 ——添加一个远程仓库,origin为远端名(可以自定,建议采用origin),远程仓库地址为gitee仓库内复制的SSH地址
git remote ——查看远程仓库
(以下的本地分支名均为HEAD所指向的分支名,不是本地全部的分支名!!!)
git push -f --set-upstream 远端名 本地分支名:远端分支名 ——把本地分支名的内容推送到远端名中的,远端分支名下(若本地分支名和远端分支名相同,可以省略:和后面的部分)
-f和--set-upstream为非必要指令:
-f ——强制覆盖远程仓库的内容(就是发生推送冲突的时候,强制以自己推送的数据为准去推送到远程仓库),尽量不要用!!!
--set-upstream ——把本地分支名和远端分支名建立连接,如果本地分支名和远端分支名关联了,则此时可以直接省略本地分支名、远端分支名和远端名
git branch -vv ——查看本地分支和远端分支的关系
git clone 远程仓库的SSH地址 本地文件夹名字(选填,基本不填) ——把整个远程仓库偷下来到本地
git fetch 远端名 远端分支名 ——把远端分支下的提交记录和数据都抓取到本地,但是不会合并,需要后期自己merge合并(远端名和远端分支名不填则默认抓取所有分支的提交记录和数据)
git pull 远端名 远端分支名 ——把远端分支下的提交记录和数据都抓取到本地,同时进行合并(同样远端名和远端分支名选填,不填就默认选择全部分支)
(推送冲突:①先pull下来别人的更新,再手动处理文件中冲突的地方[保留谁的数据?还是都不保留,用新的数据?]②add③commit④push)
Git与IDEA相关:
项目与IDEA绑定:
①找到你的项目
②在最上面的工具栏找到VCS选项
③创建一个Git的本地仓库
④把.gitignore.txt文件复制到项目的文件夹下(就放在你项目文件夹内就行)
⑤观察上面的菜单栏,VCS变成了Git
⑥绑定远程仓库地址
至此,配置完毕,可自行提交、推送、拉取更新。。。
克隆远程仓库到本地IDEA:
①VCS中,点击“从版本控制中获取...”
②按图操作
远程推送的一个冲突例子:
记得先pull下来检查,再add和push噢!
==========================================================
注意事项:
①切换分支前必须要先提交本地的修改!!!
②有问题千万不要删文件或者是目录!!!
==========================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)