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才有相应的版本记录
合并分支
- 正常合并
$ git merge hot-fix
Updating 61cca96..8a9b68d
Fast-forward
a.txt | 2 ++
1 file changed, 2 insertions(+)
-
冲突合并
两个分支在同一个文件的同一个位置有不同的修改,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 国际」许可协议进行许可。
本文来自博客园,作者:北方Cc,转载请注明原文链接:https://www.cnblogs.com/beifangcc/p/16215730.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了