【Git 快速了解】

Git简单了解

一、控制系统

复制代码
	分布式版本控制系统 git 
	集中式版本控制系统 svn cvs

二、安装Git

sudo apt install git

sudo apt search git

三、配置git环境

参数:--globle :长命令表示配置整个git环境

git config --global user.name "你的用户名"

git config --global user.email "你的邮箱"

四、创建本地仓库

本地仓: git init //master

完整流程:

mkdir test //创建空目录

cd test //进入目录

git init //初始化当前仓库

初始化后会生成git的配置文件目录,需要通过ls -ah查看隐藏目录

/home/stephenzhou/test/.git

五、新建文件添加到本地仓库

touch test.c //新建文件test.c

git add test.c // 将文件添加到缓存区

git commit -m " add test.c" // 提交到本地仓

git commit -m 中的-m 命令用来简写我们描述的信息"add test.c"

该命令会生成40位的哈希值,用于作为id。

六、改写提交:

git add test.c

git commit -m "add new file 'test.c'"

git commit --amend //重写上一次的提交信息

i 命令进入编辑

ctrl + o: 完成修改后按下

七、查看历史提交日志

git log

git log --pretty=oneline //简介输出日志信息

八、回滚代码仓库

git reset --hard^ //退回到当前仓的上一个版本

git reset --hard~3 //退回到当前仓的前三个版本

git reset --soft //将头指针恢复, 缓存区和工作区内容不变化

git reset --mixed //将头恢复掉,缓存区内容丢失,工作区内容不变

git reset --hard //一切全都恢复,头、缓存区消失,代码恢复到以前的状态

九、查看当前仓库状态

git status //查看提交之后文件是否做了改动

十、修改缓存区内容

git add --all //将所有改动文件添加到缓存区,包括删除的文件

git add . //同 git add --all ,但不会记录删除操作。

操作完成后需要git commit提交代码到本地仓

十一、将文件撤回到最近一次修改的状态

git checkout --file //checkout:切换参数,通常用来切换分支仓库

十二、查看单个文件可回滚版本:

git log filename

git log min.c

git reset Id min.c

git add min.c

git commit -m "new"

十三、删除文件

rm a.c

git add -a

git commit -m "rm a.c"

git rm a.cd

git commit -m "rm a.c"

十四、查看提交历史

git reflog //查看当前版本库的提交历史

十五、Git 基本组成框架

Workspace:开发之者工作区

Index/Stage:暂存组/缓存区

Repository: 仓库区(本地仓库)

remote:远程仓库

十六、git rm 后恢复文件

git rm 会将文件放入缓存区,且没有使用commit提交的情况下

git rm d.c //删除一个文件

git reset //重置缓存区

git checkout d.c //将文件取消操作

十七、创建分支

git checkout -b dev //创建分支,创建完成后自动切换

git branch //查看当前分支(HEAD的指向)

其中

git checkout -b dev

等价于

git branch dev //创建分支,但不会切换分支

git checkout dev //切换分支

git checkout master

十八、合并分支

git checkout master //切换到需要合并的分支上master

git merge dev //合并dev分支到master仓

十九、查看分支

git branch -a //查看当前所有分支

二十、删除分支

git branch -D branchname //删除本地分支

git push origin --delete remotename //删除远程分支

二十一、github将本地仓库关联到远程仓库

git remote add origin orginLink

git push -u origin master //推送到远程,

其中 -u 第一次提交加上即可,后面可以不用添加,只有合并记录,没有历史记录,也不能切换分支

二十二、将远程仓库关联到本地和拉去指定分支、切换远程分支

git clone 分支链接

git clone -b master //可以用来指定分支

二十三、github 提交本地仓库到远程仓库

git add //提交到缓存区

git commit -m //提交到本地仓库

git push origin master //推送到远程仓库

二十四、修改分支名称

git branch -m 分支名 新的分支名

二十五、保存当前工作分支

git stash //保存当前工作状态

git stash list //查看当前存储了多少工作状态

git checkout main //切换到其他分支

git stash pop //切回刚才的分支,刚刚的分支中状态恢复

git stash apply //删除列表中的内容默认恢复第一个

git stash apply list名称 //恢复到指定的内容

git stash drap list名称 //移除指定的内容

git stash clear //移除所有list

git stash show //查看栈中最新保存的shash与当前目录的差异

二十六、将别的分支修改转移到自己的分支

git cherry-pick 分支名 //会将master改动的代码合并到我们分支

二十七、远程删除分治后本地git branch -a 依然看得到的问题

git remote show origin //查看远程仓库信息

git remote prune origin //刷新本地分支仓库

二十八、强制合并分支

git merge master --allow-unrelated-histories

二十九、拉取远程所有分支

git fetch //拉取全部分支

git fetch XXX //XXX分支名称,拉去指定分支

三十、子模块管理

git submodule add link //添加子模块

git submodule update //子模块需要手动执行命令进行更新

三十一 git 其他命令

git branch -D //强制删除分支

git diff //查看不同分支差异

git remote -V //查看当前仓库名称

git log --graph --pretty=oneline --abbrev-commit //查看日志

git switch -b //切换分支与新增分支

git switch -c //切换新分支

git restore file //撤销文件的提交与修改

三十二、搭建本地git服务器

sudo apt install git //在debian/linux下使用此命令

git adduser git //仙剑一个用户专门管理git服务的账户

su git //切换到目录下

ssh-keygen -t rsa -C "你的邮箱" //配置好sshkey,生成.ss目录

touch authorized_keys //.ssh目录里查看没有则创建

sudo git init --bare txt.git //创建一个git仓库

vim etc/sudoers //进入权限目录

git ALL=(ALL:ALL)ALL //修改权限

sudo chown -R git:git txt.git //修改所熟组

vim /etc/passwd //安全考虑,禁止ssh登录

找到git: x:1001:1001;,:/home/git:/bin/bash

改为git: x:1001:1001;,:/home/git:/bin/git-shell

sudo apt install openssh-server //服务器安装ssh服务,git环境命令

相关推荐
小弥儿3 小时前
GitHub 今日热榜 | 2026-07-24:金融 K 线基础模型上榜
学习·金融·开源·github
FII工业富联科技服务5 小时前
灯塔用例解析:AI服务器柔性自动化制造体系的四大核心能力
github
Sagittarius_A*5 小时前
Web 安全之 Git 泄露:原理剖析 + CTFHub Log/Stash/Index 全题型解法
git·安全·web安全
lazy H6 小时前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
zzqssliu14 小时前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
一支绝命钩14 小时前
FPGA工程Git常用操作手册
git
fthux17 小时前
“装闭”,让装修套路“装”不下去
人工智能·ai·开源·github·open source
不搞学术柒柒18 小时前
Git新功能完整开发提交流程
git
用户849137175471620 小时前
想做护眼工具却脑子一片空白?我用 OpenSpec 把模糊想法聊成了 v0.1
github·vibecoding
wangruofeng20 小时前
git-filter-repo 把 .git 从 112MB 砍到 1.4MB,但漏推 tag 让 clone 又胖回来
github·devops