git 操作方法
版本控制: 是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统,简单来讲就是备份和记录,接下来我们了解三种不同版本控制的发展历程。
本地版本控制系统:
人们把项目拷贝到本地磁盘上进行备份,然后以命名方式来区分,这种做法好处简单,但坏处也不少比如备份较多或许就会混淆不同版本之间的区别,为了解决这个问题有人就开发了一个版本的管理系统,他的结构图如下:
集中化版本控制系统:(svn)
本地版本控制系统能够将不同的版本的文档保存下来并借助版本记录可以很方便定位相关文件但又引入了新的问题,如何让在不同系统上的开发者协同工作?于是,集中化的版本控制系统应运而生。这类系统,诸如CVS,Subversion等,有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。
服务端: (linux 环境下)
upload下载本地 commit 提交
客户端: 有很多客户端,
分布式版本控制系统:
git 服务端: 记录版本
客户端:多个,下载本地, 本地也有自己的版本号
windows上安装git
用户名邮箱的配置
git config --global(对git仓库中所有的就会使这个用户名和邮件) user.name "your_username"
git config --global user.email your_email@qq.com"
git config --list 查看所有配置
理解git文件的三种状态与工作模式
已提交(committed):已提交表示数据已经安全的保存在本地数据库中。
已修改(modified):已修改表示修改了文件,但还没保存到数据库中。
已暂存(staged):已暂存表示对一个已经修改文件的当前版本做了标记,使之包含在下次提交的快照中。
git项目的三个工作区域: 工作区、暂存区和git仓库
工作区:简单理解为在电脑里能够看到的目录,比如自己创建的本地项目目录
暂存区:git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
git仓库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库。
创建版本库和提交
创建文件夹,然后再文件中右键选中没然后点击git huab
再文本框中输入:git init //初始化本地仓库文件
git status //查看文件当前状态
git add . //将全部文件加载到暂存区
git commit -m “注释内容” //提交暂存区文件或文件夹到本地仓库
git ls-files //查看仓库文件的列表
时光穿梭机:
修改文件并提交:
git log //查看提交的日志
git diff HEAD -- git01.txt(修改文件) //查看此文件修改的全部内容
git版本切换:
git diff HEAD -- 文件名 //文件差异性比较
git log --pretty=oneline //查看日志,第几次的
git reset --hard HEAD^(HEAD是指针,指向当前指定的版本) //回到上一个版本(^) 两个尖括号回退到两个版本,,(回退过去)
git reset --hard HEAD~数字 //回退版本到指定版本(根据数字决定)
git reset --hard 4a07ffa7(版本hash值) //回到之前的版本或者回退到未来版本
git reflog //查看用户每一次输入的命令
git文件删除
本地文件删除 git checkout -- git01.txt ///检出git本地库文件到工作区
版本库文件删除 git rm git02.txt
本地仓库推送到远程仓库:
github 注册账户
github 创建仓库(仓库名称不允许中文)
本地生成ssh公钥私钥
ssh-keygen -t rsa -C “github账户邮箱”
上传公钥到github
校验ssh环境
ssh -T git@github.com
执行远程推送
绑定远程仓库:git remote add origin git@github。com.git(自己的本地仓库的地址)
本地创建分支: git branch -M main
本地文件推送到远程: git push -u origin main
刷新远程仓库
git分支操作:
git checkout branch(分支名) //切换到指定的分支
git checkout -b new_branch(分支名称) //新建分支并切换到新建分支
git branch -d branch(分支名) // shanchu zhiding fenzhi
git branch //查看所有分支,并且*号标记当前所在分支
git merge branch(分支名) //合并分支
git branch -m | -M oldbranch(旧名称) newbranch(新分支名称) //重命名分支, 如果newbranch名字分支已经存在,则需要使用-M是强制重命名,否则,使用-m进行重命名。
本地 & 远程分支操作:
查看本地与远程分支: git branch -a
推送本地分支到远程: git push origin loacl_branch_name
拉取远程分支到本地:
git clone url
git checkout -b loacl_branch_name origin/remote_branch_name
删除远程分支: git push origin :remote_branch_name
标签管理:
git tag tag_name //新建标签 默认为HEAD
git tag -a tag_name -m 'xxx' //添加标签并指定标签描述信息
git tag //查看所有标签
git tag -d tag_name //删除一个本地标签
git push origin tag_name /;/推送本地标签到远程
git push origin --tags //推送全部未推送的本地标签到远程
git push origin :refs/tags/tag_name //删除一个远程标签
项目制作在线办公管理系统:
问题出现
由于电脑之前切换过 github 账号,此次 git clone 的项目是原有账号的项目,然后提交到远程仓库时就出现了如下错误:
remote: Permission to userName/repositorieName.git denied to clxering.
fatal: unable to access 'https://github.com/userName/repositorieName.git/': The requested URL returned error: 403
解决方案
打开 cmd,输入命令:rundll32.exe keymgr.dll,KRShowKeyMgr,出现存储的用户名和密码窗口 将 github 相关的条目删除 重新执行命令:git push -u origin master,提示输入账户名及密码后,成功。
. 用户名 / 邮箱 / 密码是否输入正确
查询:git config user.name | git config user.email
设置当前仓库信息:git config user.name xxx | git config user.email xxx
作者:史荣新
链接:https://www.jianshu.com/p/93926a43da9c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
git pull 无响应
处理过程很简单,主要有以下几个步骤:
1.使用git stash命令暂存本地的修改,
git stash
Note:git stash list命令可以查看暂存的文件信息
2.重新pull
暂存了本地的修改之后就可以pull了
git pull origin master
3. 还原暂存内容
git stash pop stash@{0}
Note: stash@{0}就是第一步暂存的内容
4. 解决冲突
如果有冲突需要先解决冲突
git remote set-url命令修改remote URL
git remote set-url传递两个参数
remote name。例如,origin或者upstream
new remote url。例如,git@github.com:USERNAME/OTHERREPOSITORY.git
从SSH切换到HTTPS的远程URL
打开终端
切换到你项目的工作目录
列出remotes,是为了得到你想要改变的remote的名字
xxxxxx@xxxxxx:~/workspace/goal$ git remote -v
origin git@github.com:xxxxxx/SpringBoot.git (fetch)
origin git@github.com:xxxxxx/SpringBoot.git (push)
使用git remote set-url命令从SSH到HTTPS的远程URL
xxxxxx@xxxxxx:~/workspace/goal$ git remote set-url origin https://github.com/xxxxxx/SpringBoot.git
验证是否改变成功
xxxxxx@xxxxxx:~/workspace/goal$ git remote -v
origin https://github.com:xxxxxx/SpringBoot.git (fetch)
origin https://github.com:xxxxxx/SpringBoot.git (push)
git版本切换:
git diff HEAD -- 文件名 //文件差异性比较
git log --pretty=oneline //查看日志,第几次的
git reset --hard HEAD^(HEAD是指针,指向当前指定的版本) //回到上一个版本(^) 两个尖括号回退到两个版本,,(回退过去)
git reset --hard HEAD~数字 //回退版本到指定版本(根据数字决定)
git reset --hard 4a07ffa7(版本hash值) //回到之前的版本或者回退到未来版本
git reflog //查看用户每一次输入的命令
git文件删除
本地文件删除 git checkout -- git01.txt ///检出git本地库文件到工作区
版本库文件删除 git rm git02.txt
本地仓库推送到远程仓库:
github 注册账户
github 创建仓库(仓库名称不允许中文)
本地生成ssh公钥私钥
ssh-keygen -t rsa -C “github账户邮箱”
上传公钥到github
校验ssh环境
ssh -T git@github.com
执行远程推送
绑定远程仓库:git remote add origin git@github。com.git(自己的本地仓库的地址)
本地创建分支: git branch -M main
本地文件推送到远程: git push -u origin main
刷新远程仓库
git分支操作:
git checkout branch(分支名) //切换到指定的分支
git checkout -b new_branch(分支名称) //新建分支并切换到新建分支
git branch -d branch(分支名) // shanchu zhiding fenzhi
git branch //查看所有分支,并且*号标记当前所在分支
git merge branch(分支名) //合并分支
git branch -m | -M oldbranch(旧名称) newbranch(新分支名称) //重命名分支, 如果newbranch名字分支已经存在,则需要使用-M是强制重命名,否则,使用-m进行重命名。
本地 & 远程分支操作:
查看本地与远程分支: git branch -a
推送本地分支到远程: git push origin loacl_branch_name
拉取远程分支到本地:
git clone url
git checkout -b loacl_branch_name origin/remote_branch_name
删除远程分支: git push origin :remote_branch_name
标签管理:
git tag tag_name //新建标签 默认为HEAD
git tag -a tag_name -m 'xxx' //添加标签并指定标签描述信息
git tag //查看所有标签
git tag -d tag_name //删除一个本地标签
git push origin tag_name /;/推送本地标签到远程
git push origin --tags //推送全部未推送的本地标签到远程
git push origin :refs/tags/tag_name //删除一个远程标签
项目制作在线办公管理系统:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-06-20 打印表格的时候怎么让表头在每一页都出现