当前位置: 首页 > java >正文

git_guide

1. 操作流程

step 1: 本地新建一个仓库文件夹git-demo

需要在当前路径下打开git bash:

在这里插入图片描述

step 2: 初始化本地仓库

79452@legion MINGW64 /e/github/git-demo
$ git init

step 3: 在本地编写一个代码用于后面的上传
假设本地仓库新放入一个文件:test.txt。

step 4: 存在暂存区

79452@legion MINGW64 /e/github/git-demo (master)
$ git add test.txt

step 5: 推送到本地仓库

79452@legion MINGW64 /e/github/git-demo (gitmaster)
$ git commit -m "first commit" test.txt

step 6: 在GitHub新建一个仓库
仓库名设置为git-demo,当然自己可以随便命名,建议与我们本地新建的仓库保持一致。获得远程仓库的地址:https://github.com/orgxin/git-demo.gitgit

在这里插入图片描述

接下来将git远程仓库的地址用一个简化的名字代替(别名),便于后期推送,这里我们采用git-demo指代https://github.com/orgxin/git-demo.git。

79452@legion MINGW64 /e/github/git-demo (master)
$ git remote add git-demo https://github.com/orgxin/git-demo.git

移除对应的命名:

$ git remote remove git-demo

以后远程的仓库的链接t-demo代替了。查看远程仓库地址的简化名称:

79452@legion MINGW64 /e/github/git-demo (master)
$ git remote -v
git-demo        https://github.com/orgxin/git-demo.git (fetch)
git-demo        https://github.com/orgxin/git-demo.git (push)

step 7: 推送到远程仓库。

79452@legion MINGW64 /e/github/git-demo (master)
$ git push git-demo master# 当然,也可以不用别名
$ git push https://github.com/orgxin/git-demo.git master

弹框输入账号(你的github名字,不是邮箱账号)和密码(token密码, 不是登录密码)。

关于tokens的获取方法:

在这里插入图片描述

需要把tokens保存到本地(可以长期使用),因为Github上只会显示一次,下次查看就需要重新生成新的tokens。

注意事项:

(1)远程仓库的命名git-demo和本地仓库的命名git-demo以及远程仓库链接(https://github.com/orgxin/git-demo.git)的简化名git-demo这三者建议都命一样的,也可以设置不一样。

在这里插入图片描述

(2)在拉取远程仓库地址时不要使用HTTPS地址,建议使用SSH远程仓库地址,这样在每次推送的时候不会弹框,让你输入账户名和密码。

在这里插入图片描述

但是在使用SSH地址之前还需要做公钥配置,让GitHub可以对你的机子做免密登录,具体配置方法见下文。

2. 一些技巧

拉取远程仓库

如果我们的远程仓库被其他合作者修改过,但是你自己的本地还没有修改过来看,因此需要用到git pull命令,将远程仓库修改的内容重新拉到本地仓库。

一般而言,pull和push我们需要反复的用到,在本地修改了之后就要push到远程进行同步。在远程仓库的文件被其他合作者修改之后,就需要pull下来对本地的进行替换。

79452@legion MINGW64 /e/github/git-demo (master)
$ git pull git-demo master

TOC目录对GitHub失效

  • vscode中安装Markdown All in One插件;
  • 在.md界面键入Ctrl+Shift+P快捷键,然后输入Markdown All in One: Create Table of Contents即可自动生成目录。

git对中文乱码问题

如图,如果路径中有中文命名的文件需要存到仓库,采用git add就会显示中文乱码的问题。

在这里插入图片描述

解决办法:

$ git config --global core.quotepath false
$ git config --global gui.encoding utf-8
$ git config --global i18n.commit.encoding utf-8
$ git config --global i18n.logoutputencoding utf-8
$ set LESSCHARSET=utf-8

配置ssh免密登录

**step 1: **输入ssh-keygen -t rsa,敲三次回车键自动生成密钥,在本地生成如下两个文件:

在这里插入图片描述

step 2:id_rsa.pub里面的内容复制到github中。

在这里插入图片描述

注意:

若公钥已经被配置到其他github等,即公钥已经被占用了,此时可以新建一个公钥,但是命名不能与id_rsa.pub重复,新建公钥如下:

 $ ssh-keygen -t rsa -C 'your_email@example.com' -f ~/.ssh/id_rsa_new

替换掉上述的email和id_rsa_new即可,其中email是git配置的邮箱,id_rsa_new只要不与id_rsa命名相同即可。

git用户名和邮箱

为了便于身份的识别,需要给每台设备的git取一个名字和邮箱,这个用户名和邮箱可以任意取(不是Github的用户名和邮箱)。

查看用户名和邮箱

79452@legion MINGW64 /f/NewDesktop
$ git config user.name79452@legion MINGW64 /f/NewDesktop
$ git config user.email

配置全局用户名和邮箱

79452@legion MINGW64 /f/NewDesktop
$ git config --global user.name home79452@legion MINGW64 /f/NewDesktop
$ git config --global user.email 794529766@qq.com

查看用配置信息

79452@legion MINGW64 /f/NewDesktop
$ git config --global --list

3. 常用操作命令

git add命令

git add作用是把文件放在暂存区,具体原理这里不深究。但是git add有很多命令,如git add .git add *git add -Agit add -ugit add your_file,就一个add把人给整晕了。

  • 如果仅改动某一个文件,则直接用git add file指定即可。
  • 若改动的文件比较多,还包括文件夹,则可以使用git add *或者git add .,可以将所有改动包括删除的文件都放在暂存区。区别就是git add *不考虑.xxx_folder这种文件夹。
  • git add -A不受当前所在路径限制,将整个工作区的修改、新增和删除都放在暂存区。

git bash命令

  • cd: 切换路径。
  • pwd: 显示当前路径。
  • ls: 展示当前路径中所有文件和文件夹(不包括.git文件夹)。
  • ll: 展示当前路径中更加详细的文件和文件夹信息,推荐使用简单版的ls
  • touch xxx.yy: 新建一个名为xxx,后缀为yy的文件
  • rm xxx.yy: 删除xxx.yy文件
  • mkdir xxx: 新建xxx文件夹
  • rm -r xxx: 删除xxx文件夹
  • git log: 查看提交的历史记录。(详细版)
  • git reflog: 查看提交的历史记录。(简易版)推荐
  • git status:查看文件的状态命令

vim常用操作命令

vim模式

  • Esc进入正常模式,左下角显示文件名或为空,可以输入下列命令
  • i进入insert模式,左下角显示–INSERT–,可以写入

退出命令

  • :q不保存,并退出
  • :q!不保存,并强制退出
  • :w 保存文件,不退出
  • :w! 强制保存,不退出
  • :wq保存,并退出
  • :wq!强制保存,并退出
  • ZZ 保存并退出

启动

  • vim进入vim
  • vim filename.format在当前路径打开vim,并创建文件filename.format

其他

  • :open filename在vim窗口中打开filename文件
  • :!ls 列出当前路径下所有文件

参考文献

[1] 史上最简单的 GitHub 教程

[2] git add .,git add -A,git add -u,git add * 的区别与联系 - 掘金 (juejin.cn)

[3] 01_尚硅谷_Git_课程介绍_哔哩哔哩_bilibili

[4] VIM中的保存和退出、VIM退出命令、如何退出vim编辑、VIM命令大全_vim保存退出命令-CSDN博客

http://www.xdnf.cn/news/15931.html

相关文章:

  • 关于JVM
  • 开源 Arkts 鸿蒙应用 开发(八)多媒体--相册和相机
  • QT6 源,七章对话框与多窗体(6) 颜色对话框 QColorDialog :本类的属性,信号函数,静态成员函数,以及源代码
  • “hidden act“:“gelu“在bert中作用
  • Tomcat的部署、单体架构、session会话、spring
  • LeetCode|Day21|204. 计数质数|Python刷题笔记
  • DelayQueue延迟队列的使用
  • 分布式定时任务系列13:死循环是任务触发的银弹?
  • Jmeter如何做接口测试?
  • 基于 STM32 的数字闹钟系统 Proteus 仿真设计与实现
  • JavaWeb笔记四
  • 【VASP】VASP 机器学习力场(MLFF)实战
  • 超越基于角色的手术领域建模:手术室中的可泛化再识别|文献速递-医学影像算法文献分享
  • 神经网络——非线性激活
  • 深入解析 SymPy 中的符号计算:导数与变量替换的实践指南
  • 【设计模式】观察者模式 (发布-订阅模式,模型-视图模式,源-监听器模式,从属者模式)
  • OpenEuler 22.03 系统上安装配置gitlab runner
  • 基于Python的多传感器融合的障碍物检测与避障演示
  • Jetpack ViewModel LiveData:现代Android架构组件的核心力量
  • 【Vue进阶学习笔记】实现图片懒加载
  • k8s的calico无法启动报错解决
  • Docker实践:使用Docker部署blog轻量级博客系统
  • 【Java + Vue 实现图片上传后 导出图片及Excel 并压缩为zip压缩包】
  • 【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移
  • IDEA 同时修改某个区域内所有相同变量名
  • 深入解析IP协议:组成、地址管理与路由选择
  • Freemarker实现下载word可能遇到的问题
  • docker--挂载
  • 深入解析:如何在Kafka中配置Source和Sink连接器构建高效数据管道
  • 【Linux指南】Linux系统 -权限全面解析