【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环境命令

相关推荐
西柚与蓝莓4 小时前
任务【浦语提示词工程实践】
github
Good_Starry10 小时前
Git介绍--github/gitee/gitlab使用
git·gitee·gitlab·github
云端奇趣15 小时前
探索 3 个有趣的 GitHub 学习资源库
经验分享·git·学习·github
运营黑客17 小时前
发现一超级Prompt:让GPT-4o、Claude3.5性能再升级(附保姆级教程)
github
記億揺晃着的那天17 小时前
Github优质项目推荐-第二期
github
F_D_Z19 小时前
【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem:
网络·git·网络协议·ssl
Uncertainty!!21 小时前
GitHub入门与实践
github
罗曼蒂克在消亡1 天前
github项目——gpt-pilot自动创建应用
gpt·github·github项目
等风来不如迎风去1 天前
【git】main|REBASE 2/6
git
艾伦~耶格尔1 天前
IDEA 配置 Git 详解
java·ide·git·后端·intellij-idea