git及命令学习实践

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


前言

刚入门就开始学习git,但是没有整体学习,有些细节就不太明白,于是就将git的知识梳理了一篇,之后的操作只要能用git命令就用git命令

一、git基础

备注:git和svn区别
git: git的commit是本地的,git本地是一个完整的版本库,你可以进行全套版本管理,只有进行push操作才会把这次更迭同步到服务器上。比如你新加了一个功能,即使没有网,也可以commit一次,记录下版本更迭。
svn: svn的commit是直接送到服务器的,在没网的时候,而svn则只能进行代码工作,没法进行版本管理。

1.基础命令

参考文章:https://www.cnblogs.com/mrzll/p/12049280.html

// 查看帮助
git helper -a

// 版本
git --version

// 查看配置信息
git config --list

// 创建、切换文件夹,查看当前目录
mkdir learngit
cd learngit
pwd

// 初始化仓库
git init

// 1.1创建文件、编辑并保存
touch readme.txt
vim readme.txt
git is a version control system
git is free soft ware
// 1.2编辑好后先按esc键,再输入英文冒号,然后输入wq,最后enter保存
cat readme.txt

// 查看当前状态
git status

// 2.将文件提交到本地git版本仓库中
// 2.1add到暂存区
git add readme.txt
// 2.2commit到本地版本库中
git commit -m "write a readme file"


// 查看历史记录
git log 
git reflog

// 回退到某个版本
git reset --hard 3f450694ac9bbe6200b6574447f659c89305e0f0

// 对比工作区和本地版本库中的区别
 git diff HEAD -- readme.txt

// 回退在工作区修改前内容(未提交到本地仓库)
git restore readme.txt
git checkout -- readme.txt

// 回退在本地版本库修改前内容(未提交到远程仓库)
 git restore --staged readme.txt

// 只是删除工作区的test.txt文件
 rm test.txt
 
// 撤回工作区删除的文件(同前)
git restore test.txt

// 将工作区和版本库中同时删除并提交
git rm test.txt     (此时删除未提交还可以撤回 git restore --staged test.txt   ::实际测试却无法恢复)
git commit -m "del test file"


// 将提交的账号及密码设置为全局的(需在提交或更新输入账号和密码)
$ git config --global credential.helper store

1.1其他基础命令

// 切换到根目录
~/
// 复制
cp
// 添加
echo   >> 
// 重新加载文件
sourch ~/.bashrc       或者        source   ~/.bashrc
// 清屏
reset
// 切换到某个目录下
cd:
// 回退到上一个目录
cd ..
// 显示当前目录路径
pwd
// 列出当前目录中的所有文件
ls   ll(更详细) 
ls -l
ls -l -a
// 新建文件
touch
// 删除一个文件
rm
// 新建一个目录
mkdir
// 删除一个文件夹
rm -r
// 移动文件
mv index.html src

// 查看文件
cat index.html

// 修改文件
vim 文件名 // 新建一个文件

i 插入内容

按下esc :wq 保存并退出

按下esc :q 直接退出

2.创建远程仓库

2.1 创建仓库后创建ssh

// 创建秘钥
ssh-keygen -t rsa -C "[email protected]"

// 查看秘钥命令
cd ~/.ssh

ls

// 查看私钥
cat /c/Users/Administrator/.ssh/id_rsa

在这里插入图片描述
在这里插入图片描述

2.2部署秘钥

在这里插入图片描述

2.3本地仓库连接远程仓库

之前创建过仓库了,只需要操作已有仓库的步骤了

Git 全局设置:
git config --global user.name "你的账户名"
git config --global user.email "你的邮箱"

创建 git 仓库:
mkdir learngit
cd learngit
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/你的账户名/learngit.git
git push -u origin master

已有仓库?
git remote add origin https://gitee.com/你的账户名/learngit.git
git push -u origin master

如下图:
在这里插入图片描述
第一次push加上参数 -u就可以把本地主分支和分支与远程的都联系起来,之后push(不用加 -u参数)或者pull就可以简化命令。

2.4 解除本地git仓库与远程仓库的关联,而非删除

// 先查看远程库信息
git remote -v
// 再根据名字解除关联
git remote rm origin

2.5从远程仓库拉取最新内容,更新本地仓库内容(非克隆)

// 1.git fetch从远程获取最新版本到远程的master主分支中,然后将远程的master主分支带着最新版的内容拉取到本地仓库,
// 但是不会自动合并本地仓库内,也就是需要自己再次合并
git fetch origin master
// 1.1先通过日志查看区别
git log -p master..origin/master
// 1.2再从远程仓库合并到本地
git merge origin/master

// 2.git pull相当于git fetch与git merge的结合
git pull

2.6从远程仓库克隆到本地

我们先把本地的learngit仓库给删除了,再克隆下来。

 git clone https://gitee.com/你的账户名/learngit.git

3.git分支管理

3.1

// 创建分支
git branch dev
// 切换分支
git checkout dev
git switch dev

// 简化创建和切换分支
git checkout -b dev
git switch -c dev

// 列出所有本地分支
git branch

// 列出所有远程分支
git branch -r

// 列出所有本地和远程分支
git branch -a

// 删除分支
 git branch -d dev
 
// 将dev的内容合并到当前分支(假设已切换到master)
git merge dev

3.2 解决合并冲突

// 先新建分支feature
git switch -c featrure 
// 分别在feature、master分支修改test2.txt文件并add+commit,然后合并(结果当然因为冲突失败了)
// 我们可以手动编辑test2.txt文件解决冲突,最后再add+commit
// 最后查看分支合并图
git log --graph

二、使用步骤

1.先在idea中设置本地的git可执行路径

如图:我的因为添加了,点击Test就会出现Git版本,否则添加你安装的git路径
在这里插入图片描述

2.将建立的项目初始化为git本地仓库

相当于git init命令
在这里插入图片描述

3.将项目添加并提交到本地仓库中

记得将你要提交的文件打上勾,不需要的去掉勾
在这里插入图片描述

4.添加、删除、修改文件后再提交到仓库

同上操作,将添加、删除、修改后的文件选上
在这里插入图片描述
查看结果如下图:添加的Demo为绿色,删除的DemoApplication变成了灰色,修改的pom.xml是蓝色且显示新添加了几行代码
在这里插入图片描述

5.版本回退

在这里插入图片描述

6.新建分支

在这里插入图片描述

7.将本地仓库与远程仓库建立连接

远程仓库建立与同之前一样包括添加秘钥,将地址添加到下面框URL中
在这里插入图片描述
在这里插入图片描述

8.在idea使用git命令进行提交、拉取代码

参考链接:https://blog.csdn.net/wangsun300/article/details/105782778
按下操作完,再点击idea左下角的terminal即可打开窗口,其余命令与同之前一样。
在这里插入图片描述
备注:以上大部分都参考:https://blog.csdn.net/qq_52596258/article/details/119710706?spm=1001.2014.3001.5501


总结

Guess you like

Origin blog.csdn.net/qq_45738250/article/details/121486378