git的使用

git

必要的配置

git config --global user.name J
git config --global user.email abc@163.com

没有此项配置无法向其他用户进行推送

用处是给这个本地的git起个名字,在push时远程端知道是谁推送的

这个用户签名与github的账号是没有任何关系的

这个配置文件被写在了C:\Users\你的用户名\.gitconfig

[user]
	name = J
	email = abc@163.com

初始化本地库

想要对代码进行管理,需要给git指定需要管理哪一个

使用方法

进入需要管理的文件

gitbash中执行

git init

其会在相应目录下生成隐藏文件.git
这个git文件负责这个文件下的版本控制

查看本地库状态

git status

git bash中可以使用大部分的linux命令

添加到暂存区

git add filename

#example
git add a.txt

添加到的暂存 区的文件删除

git rm --cached <filename>

提交本地库

git commit -m "日志信息" <filename>

日志必须要添加,如果不写-m,也会返回要求填写

日志的规范

  • feat: 新功能、新特性
  • fix: 修改 bug
  • perf: 更改代码,以提高性能(在不影响代码内部行为的前提下,对程序性能进行优化)
  • refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
  • docs: 文档修改
  • style: 代码格式修改, 注意不是 css 修改(例如分号修改)
  • test: 测试用例新增、修改
  • build: 影响项目构建或依赖项修改
  • revert: 恢复上一次提交
  • ci: 持续集成相关文件修改
  • chore: 其他修改(不在上述类型中的修改)
  • release: 发布新版本
  • workflow: 工作流相关文件修改

例子

$ git commit -m "release 1.1.0" a.txt

warning: LF will be replaced by CRLF in a.txt.
The file will have its original line endings in your working directory
[master (root-commit) 61cca96] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
 #其中的 61cca96 就是版本号

此处有一个warning
它说的内容是LF是linux,mac的换行,CRLF是win的换行,我们使用不同的平台合作开发的时候,就需要注意文件格式问题,而此处git会默认自动根据你的电脑系统做格式转换

查看日志

git reflog  #查看引用日志
git log #查看详细的日志
$ git reflog
d4c2da9 (HEAD -> master) HEAD@{0}: commit: second
61cca96 HEAD@{1}: commit (initial): first commit
#其中HEAD指向当前用的的版本

版本的穿梭

版本的回退与前进

使用 git reflog 得到版本的版本号

git reset --hard <version>

#example
git reset --hard 61cca96
git reflog
61cca96 (HEAD -> master) HEAD@{0}: reset: moving to 61cca96  #此处有跳转标记
e791e2f HEAD@{1}: commit: third
d4c2da9 HEAD@{2}: commit: second
61cca96 (HEAD -> master) HEAD@{3}: commit (initial): first commit   #HEAD指针也变化
#相应文件也会变化

git分支

代码同时有多分,开发,测试,上线使用。不同的分支有着不同的使用场景

git branch name 创建分支
git branch -v 查看分支
git checkout name 切换
git merge name 指定分支合并到当前分支上

例子

git branch hot-fix
git checkout hot-fix
git branch -v
* hot-fix 8a9b68d f
  master  61cca96 first commit

#在hot-fix分支中修改文件
git add a.txt
git commit -m "f" a.txt
#注意要提交,git才有相应的版本记录

合并分支

  1. 正常合并
$ git merge hot-fix
Updating 61cca96..8a9b68d
Fast-forward
 a.txt | 2 ++
 1 file changed, 2 insertions(+)

  1. 冲突合并

    两个分支在同一个文件的同一个位置有不同的修改,git无法决定使用哪一个,需要人为的判断

$ git merge hot-fix
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
#提示 merge conflict
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   a.txt   # 标记

no changes added to commit (use "git add" and/or "git commit -a")

#此时再次手动打开文件,就会看到冲突标记
$ cat a.txt
asdfasdf

<<<<<<< HEAD   #当前分支
adfoiu8
=======
adfoiu-s
>>>>>>> hot-fix  #要合并的代码

#然后对他进行人为修改
asdfasdf


adfoiufix
#再添加到暂存区,提交本地库
#注意
#此时提交本地库时,不要带文件明
git add a.txt
git commit -m "t"

github相关操作

创建远程库别名

因为https链接太长

git remote add <name> url
//给远程仓库起个别名name

一个项目开始常用origin做别人

此步骤要先git init,将空间变为git的工作空间

git remote
#可查看当前远程库的别名

别名的修改和删除

git remote rename oldname newname
git remote rm name

推送

git push <name> <分支名>
//向name仓库的推送分支
//例子
git push origin master
将本地的master分支推送到origin的master

此步是需要输入代码托管平台的密码的,或者使用下面要说的ssh方式

有些网站

拉取

git pull <别名> <分支名>

这个pull会自动同步到本地库

ssh免密登录

ssh-keygen -t rsa -C “abcd@163.com”

最后的一部分推荐写邮箱,但是你换成其他的也是没问题的
三次回车确定,

  • 第一次让你确认ssh密钥保存位置,回车默认
  • 第二次问要不是添加 passphrase,这个东西是git的密码,保证你电脑上git不会被别人乱用,类似应用锁,回车默认密码为空
  • 第三次是确认密码

在C:\Users\你的用户名\ 下会生成 .ssh 文件
其中有id_ras 这个是私钥,保存好,不要发给别人
id_rsa.pub 这个是公钥,打开,将这里面的内容保存到代码托管网站上

问题
在我们实际工作中,并不是使用github,而是其他仓库
所以有可能你配置了ssh,依旧现实你没有权限

这个问题是由于 OpenSSH 8.8 版本开始,ssh-rsa 公钥签名在默认情况下已被弃用。而你的服务器仍然使用的是 ssh-rsa 进行密钥交换,因此出现了无法协商的错误

在你的客户端机器上,添加或修改 ~/.ssh/config 文件(如果没有该文件就创建一个),并添加以下配置

Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa                        

IDEA操作git

忽略无关文件(全局配置)

在C:\Users\你的用户名\ 下新建文件git.ignore

写入如下内容

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/ # Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

然后在同目录下

.gitconfig 文件中添加

[user]
	name = J
	email = abc@163.com
# 以下为添加的内容,注意要使用正斜杠
[core]
	excludesfile = C:/Users/name/git.ignore

idea顶给git程序

File>Setting> Version Control>git 选择git.exe文件 (bin目录下)

作者:beifangcc

出处:https://www.cnblogs.com/beifangcc/p/16215730.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   北方Cc  阅读(25)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示