Git笔记 从入门到精通

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Git是一个开源的分布式版本控制系统,可以有效高速的处理从很小到很大的项目版本管理。


1. Git工作机制和托管中心

1.1 工作机制

历史版本→本地库

​ ↑

git commmit

​ ↑

暂时储存→暂存区

​ ↑

git add

​ ↑

写代码 →工作区

1.2 托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库

  • 局域网

GitLab

  • 互联网

GitHub(外国网站)

Gitee 码云(国内网站)

2. Git常用命令

命令名称 作用
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git config --global core.quotepath false 设置显示中文文件
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m "日志信息" 文件名 提交到本地库
git reflog 或 git log(更详细) 查看历史记录
git reset --hard 版本号 版本穿梭

2.1 设置用户签名

admin@DESKTOP-E8GCEEI MINGW64 ~
$  git --version    //查看版本号
git version 2.35.1.windows.2

admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.name tang  //设置用户签名

admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.email 2834323411@qq.com //设置用户签名

admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config  --global  core.quotepath false  //设置显示中文文件

注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系

  • 查看是否设置成功

在C:\Users\admin里面找到 .gitconfig 文件并打开

2.2 初始化本地库

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo 
$ git init  

初始化之后会自动在当前文件夹下生成一个隐藏文件 .git

2.3 查看本地库状态

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git status  
On branch master
nothing to commit, working tree clean

2.4 添加到缓存区

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git add hello.txt

2.5 提交到本地库

  • 通过git commit -m "日志信息" 文件名
    通过其git status也可看出其不同
    而且查看日志也可看出版本更新
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git commit -m "merge"  
[master f556a5b] merge

2.6 历史版本

git reflog 查看版本信息
git log 查看版本详细信息

admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git reflog
3f47d64 (HEAD -> master, origin/master, git/master) HEAD@{
    
    0}: commit: git笔记1.1
29410ad HEAD@{
    
    1}: commit: git笔记1.0
f73d1ab HEAD@{
    
    2}: commit: 完善版
df5acc9 HEAD@{
    
    3}: reset: moving to df5acc9
20952cf HEAD@{
    
    4}: reset: moving to 2095
df5acc9 HEAD@{
    
    5}: commit: git笔记1.0
d930448 HEAD@{
    
    6}: commit: 进行了第四次修改
24de0b6 HEAD@{
    
    7}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{
    
    8}: commit: 进行了第二次修改
20952cf HEAD@{
    
    9}: commit (initial): 进行了一次修改

admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git log
commit 3f47d64f23916a165bc218a4bf47ccbe5540bcf5 (HEAD -> master, origin/master, git/master)
Author: tang <2834323411@qq.com>
Date:   Sat Sep 3 13:10:14 2022 +0800

    git笔记1.1

commit 29410ad24169242a841511e3299560203b4cccec
Author: tang <2834323411@qq.com>
Date:   Sat Sep 3 12:47:05 2022 +0800

    git笔记1.0

2.6.1 版本穿梭

​ git reset --hard 版本号

admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reflog
bf3c4a7 (HEAD -> master) HEAD@{
    
    0}: commit: git笔记1.0
f73d1ab HEAD@{
    
    1}: reset: moving to HEAD^
29410ad HEAD@{
    
    2}: reset: moving to 29410ad
3f47d64 (origin/master, git/master) HEAD@{
    
    3}: commit: 唐辉阳的git笔记
29410ad HEAD@{
    
    4}: commit: git笔记
f73d1ab HEAD@{
    
    5}: commit: 完善版
df5acc9 HEAD@{
    
    6}: reset: moving to df5acc9
20952cf HEAD@{
    
    7}: reset: moving to 2095
df5acc9 HEAD@{
    
    8}: commit: git笔记
d930448 HEAD@{
    
    9}: commit: 进行了第四次修改
24de0b6 HEAD@{
    
    10}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{
    
    11}: commit: 进行了第二次修改
20952cf HEAD@{
    
    12}: commit (initial): 进行了一次修改

admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard 3f47
HEAD is now at 3f47d64 唐辉阳的git笔记

admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard bf3c
HEAD is now at bf3c4a7 git笔记1.0

2.7 Git常用命令速查表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-loVLF8UC-1662218517526)(pictrue/git常用命令.jpg)]

3. Git的分支操作

​ 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行

优点

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可

分支常用命令

命令名称 作用
git branch 分支名 创建分支
git branch -d 分支名 删除分支
git branch -v 查看分支
git branch -r 查看远程库分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

分支合并

代码冲突时,先改文件,再使用命令(不能带文件名)

4. GitHub操作

GitHub网址

  1. 创建远程仓库
  2. 输入仓库名

远程仓库命令

命令名称 作用
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git diff 查看冲突文件
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

查看、创建别名

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote -v  //查看别名

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote add git-demo https://github.com/Tang17261828134/git_demo.git
//创建别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote  -v
git-demo        https://github.com/Tang17261828134/git_demo.git (fetch)
git-demo        https://github.com/Tang17261828134/git_demo.git (push)

admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote  remove git-demo  //删除别名

起好别名之后
可以通过别名上传文件

团队内合作
可以通过GitHub内中的设置有个manger access进行邀请账户
之后受邀人通过复制该链接进行同意即可

受邀人克隆clone代码之后编辑在上传可以实现更改代码的模型

跨团队合作
通过代码的fork变成自已的,之后修改之后通过pull request请求发送
如果成功就会变成是你修改的

SSH免密登录

  1. 进入Git Bash here
  2. 输入命令:ssh-keygen -t rsa
  3. 在C:\Users\admin\.ssh里面找到 id_rsa.pub,将里面的内容全部复制下来
  4. 登录Gitee网站,点 设置 一> SSH公钥 一> 在添加公钥里面粘贴刚刚复制的内容

注意:用ssh免密登录的话,起别名是后面的链接只能是http,而不能是https

5. IDEA 集成 Git

5.1配置Git忽略文件

先设置一个忽视文件
与项目的实际功能无关,不参与服务器上部署运行
设置一个 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
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

在.gitconfig 文件中引用忽略配置文件

[user]
name = manong
email = yanjiuseng
[core]
excludesfile = C:/目录/git.ignore

5.2 定位Git程序

在这里插入图片描述

5.3 初始化本地库

在这里插入图片描述

5.4 添加到暂存区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FRh2UvMu-1662218517528)(pictrue/idea_Git_03.png)]

添加成功后的文件为绿色未添加至缓存区的文件为红色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fCSEdHoI-1662218517529)(pictrue/idea_Git_04.png)]

5.5 提交到本地库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e7tKZMcC-1662218517529)(pictrue/idea_Git_05.png)]

5.6 切换版本

5.6.1 查看版本信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dWVdx9br-1662218517530)(pictrue/idea_Git_06.png)]

5.6.2 切换版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2qkYbDKF-1662218517530)(pictrue/idea_Git_07.png)]

5.7 创建分支

创建分支这里有两种方法

  •  [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PPwINhv4-1662218517531)(pictrue/idea_Git_08.png)]
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qWszov0G-1662218517531)(pictrue/idea_Git_09.png)]

5.8 切换分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mx2xaG2X-1662218517532)(pictrue/idea_Git_10.png)]

5.9 合并分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NVpKaAR4-1662218517532)(pictrue/idea_Git_10.png)]

5.10 解决冲突

链图片转存中...(img-dWVdx9br-1662218517530)]

总结

这次通过学习git让我学到了很多,了解到了很多⾃⼰不知道的知识。Git 是⼀个分布式管理⼯具,通过指纹字符串来时刻保持数据的完整性,关⼼的是⽂件数据整体的变化,并不保存变化前后的差异数据;Git 在本地磁盘保存有关项⽬的历史更新,所有绝⼤多数操作只需要访问本地⽂件资源,并不需要Internet。当然可以使⽤GitHbub将代码托管,进⾏远程开发,⽅便团队⽐较分散的情况(这正体现Git分布式的优势);开发⼈员只需将项⽬clone到本地,进⾏相应的开发然后push上传到 GitHub即可。

猜你喜欢

转载自blog.csdn.net/qq_62761962/article/details/126684119