• git使用


    Git使用

    使用Git管理代码

    1. github中创建仓库
      在这里插入图片描述

    2. 在项目中添加git管理

      在这里插入图片描述

    3. 进行git操作

      HEAD : 当前版本

      在这里插入图片描述

      git命令大全

      # 提交本地仓库, 上传服务器
      $ git init	 # 初始化一个空的git仓库 就是隐藏的.git文件
      $ git add .	 # 将当前目录下修改的所有代码从工作区添加到缓存区 . 代表当前目录
      $ git commit -m "xxx" # 将缓存区内容添加到本地仓库,xxx为本次提交的说明
      $ git remote add origin	https://xxx # 设置远程主机,也就是代码推送服务器
      $ git push -u origin master	# 本地仓库代码发到github中, master是主分支 可修改(-u的命令需要在第一次提交的时候跟上,让本地和空仓库关联,后续的提交只需要git push origin master就行了)
      $ git push [origin] --tags	# 上传所有的tag	例:git push [origin] --tags
      $ git push origin [tagname]	# 上传单个tag		 例:git push origin "V1.0"
      
      $ git push -f origin master # 确保本地没问题,强制上传
      $ git pull origin master	# 拉取
      
      # 远程连接
      $ git remote add origin	https://xxx # 设置远程主机,也就是代码推送服务器origin是我们给这个主机起名
      $ git remote -v 	# 查看远程主机
      $ git remote rm origin		# 根据名字删除远程库
      $ ssh -T git@github.com		# 检查ssh端口是否能够连接,默认端口22,可以修改通过加上参数 -p 443
      
      # 分支
      $ git fetch origin '远程分支名'	# 会新开辟一个分支,不会像pull直接合并当前分支
      $ git branch (-c|-C) '分支名称'	 # 复制当前分支并创建,小c只会在分支不存在时才会复制创建
      $ git branch (-M|-m) '分支名称'	 # 重命名分支
      $ git branch (-v|-vv)		    # 查看所有分支,-v可以显示版本号,-vv则可以显示远程分支的信息
      $ git switch -c '分支名'    # 新版创建并切换分支
      $ git switch '分支名'		# 切换到已存在的分支上
      $ git merge '分支名'		# 合并分支
      $ git branch -d '分支名'	# 删除分支(若分支没合并无法删除, -D强制删除)
      $ git checkout -b "本地分支名" "远程分支名"		# 创建本地分支
      
      # 创建标签
      $ git tag "标签名"               # 创建标签,记录当前代码状态,必须commit提交后
      $ git tag "标签名" -m "备注"     # 创建带有备注的标签
      $ git tag -l "0*"               # 查看所有以0开头的标签 *是模糊匹配
      $ git tag -d "标签名"			# 删除标签
      $ git checkout "标签名"		# 切换标签
      $ git push --tags			  # 提交所有标签
      $ git show v1.0.0			  # 显示某个标签的详细信息
      
      # 版本回退(任何版本都不会删除,可以通过记录进行来回横跳转)
      $ git reset "版本号"				# 可通过git log查看,就是 commit id 一串哈希值
      $ git reset --hard HEAD^	  # 回退上一个版本  HEAD^^:回退两个版本 HEAD~n:回退n个版本
      $ git checkout -- file			# 可以丢弃工作区的错误修改(没有git add情况下)
      $ git reset HEAD .					# 把提交到缓存区的内容撤销
      
      # 记录查询
      $ git log 					# 查看之前提交的版本
      $ git reflog				# 查看所有操作,可以可以随意跳转版本(例如:错误reset跳转)
      # 2c9a1fc HEAD@{4}: commit: V2.0	commit提交记录
      $ git status				# 查看当前版本那些文件被修改
      $ git diff					# 查看文件被修改了那些内容
      
      # 删除文件
      $ git clean -df				# 删除不在git管理之下的文件
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53

    git全局设置

    git config --global user.name "Andermi"
    git config --global user.email "xing_yi_bin@163.com"
    
    • 1
    • 2

    本地生成秘钥

    本地Git仓库和GitHub仓库之间的传输是通过SSH加密,需要设置:

    1. 创建SSH Key

      如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    ssh-keygen -t rsa -C "youremail@example.com"	# 自己的邮箱,然后一路回车
    
    • 1
    1. 第2步:登陆GitHub -> setting

      然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

      在这里插入图片描述

    2. 为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送

    在 HTTPS 端口使用 SSH

    如果使用ssh来push的时候出现这种错误:不能使用22端口进行连接:

    在这里插入图片描述

    解决方案:

    1. 在用户主目录,也就时我们生成公钥秘钥的那个文件里,touch config生成config

    2. 请在 ~/.ssh/config 编辑该文件,并添加以下部分:

      Host github.com
      Hostname ssh.github.com
      Port 443
      User git
      
      • 1
      • 2
      • 3
      • 4

    在这里插入图片描述

    可以push了

    在这里插入图片描述

    添加 .gitignore 文件

    # 1. 创建gitignore文件
    touch .gitignore
    
    # 2. 语法规则
    以【/】表示目录以【*】匹配多个字符以【?】匹配单个字符
    以【[]】匹配字符列
    以【!】忽略文件或者目录
    
    # 3. 用法
    *.class # 忽略所有class文件
    aaa/*	# 忽略aaa文件夹下所有文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    java计算机毕业设计咖啡屋订单系统MyBatis+系统+LW文档+源码+调试部署
    Linux命令记录
    网络第一颗
    java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署
    询盘内耗没转化?业务员表示不接这个锅——B2B外贸营销特辑
    redis georadius源码分析与性能优化
    FFmpeg 系列
    Electron基础学习笔记
    一种基于最大似然的语音信号混响时间(reverberation time)估计方法的MATLAB实现
    BM58 字符串的排列
  • 原文地址:https://blog.csdn.net/weixin_44038881/article/details/126903319