git使用
1、git初始化方式:
git init #用于初始化仓库在本地运行
git clone #用于克隆远端的仓库
git status #用于查看git仓库的状态
![截屏2023-05-23 10.18.44 (2)](/Users/shiwu/Desktop/截屏2023-05-23 10.18.44 (2).png)
2、git的工作流
分为三块分别是
工作区 暂存区 本地仓库
正常编写代码的位置 ---------->git add--------> 存放临时代码的位置 ---------->git commit--------> 存放成品代码的位置
git的文件类型:
![截屏2023-05-23 10.55.35](/Users/shiwu/Library/Application Support/typora-user-images/截屏2023-05-23 10.55.35.png)
当我们在本地仓库中创建了一个文件后使用git查看状态是下图所示状况,这个时候就是处于一个未跟踪的状态:
![截屏2023-05-23 11.03.17](/Users/shiwu/Library/Application Support/typora-user-images/截屏2023-05-23 11.03.17.png)
使用git add对当前文件进行添加后我们就会将这个文件存放到暂存区也就是上图所示的未修改的状态:
![截屏2023-05-23 11.05.05](/Users/shiwu/Library/Application Support/typora-user-images/截屏2023-05-23 11.05.05.png)
再次使用git commit对文件进行提交后,该文件就会被推送到本地仓库而在暂存区中不显示。
Tips 使用命令git commit -a -m
可以直接完成暂存和提交两个动作。
可以使用git log查看提交记录,并且可以使用git log --oneline 只查看最简洁的记录
3、git回退版本
git reset #用于回退到git提交的某一个版本上
包括三种模式
1:git reset --soft表示回退到某个版本并且保留暂存区和工作区的内容
2:git reset --hard表示回退到某个版本并且丢弃暂存区和工作区的内容
3:git reset --mixed表示回退到某个版本并且丢弃暂存区保留工作区的内容 ---reset的默认参数
4、git比较
git diff 默认比较工作区和暂存区的内容差别
git diff HEAD比较工作区和版本库的内容差别(HEAD表示版本最新的提交,分支的最新提交节点 HEAD或者HEAD^都可以表示HEAD之前的版本,HEAD3表示HEAD之前的第三个版本)
git diff --cached比较暂存区和版本库的内容差别
git diff 版本号id1 版本号id2 可以用于比较两个版本之间的差别
git diff 版本号id1 版本号id2 file文件名 可以用于比较两个版本之间该文件的差别
git diff 分支名1 分支名2 可以用于比较两个分支之间的差别
5、git删除文件:
1、首先在本地工作区删除文件,然后使用命令git ls-files查看文件暂存区中的内容
然后通过git status查看此时git的状态,发现有deleted file 提示,然后使用git add .
将这个文件删除的信息传递到暂存区
然后提交变化到本地仓库即可
2、使用 git rm [文件名]
删除文件即可同时把本地工作区和暂存区的文件直接删除。然后提交变化到本地仓库即可。
git rm -cached [文件名]
把文件从暂存区删除但保留在当前工作区内。
git rm -r *
即可递归的删除某个文件下的所有子目录和文件
6、通过gitignore忽略不需要上传到版本仓库的文件
直接vi .gitignore
把我们不想上传的文件的名字放到文件中即可
Tips:gitignore中忽略的文件,必须不在版本仓库里面的,如果在版本仓库里面有file1.txt文件,然后我们吧*.txt的文件规则添加到了gitignore中我们如果对file1.txt进行了操作,git仍然可以对我们的file1.txt文件的更改做出反馈。
7、配置远程仓库
1、Mac配置
在主目录下使用命令
cd .ssh
然后使用命令
ssh-keygen -t rsa -b 4096
生成协议是rsa由-t参数指定,大小为4096由-b参数指定
然后输入密钥的名称,然后输入密码。(全部可以自定义)
一个是你生成密钥输入名称比如我这里输入的是macssh然后这个名称结尾没有后缀名的就是私钥文件(重要不能乱传)。另一个就是pub结尾的公钥文件,然后我们把公钥文件的内容复制到github中(github选择右上角的你的头像的下拉菜单中的setting-然后进入选择左侧的SSH and GPG keys-然后选择new SSH keys-然后在title输入你的密钥名字并在Key中把你复制的公钥粘贴)然后创建即可
然后我们在我们的主机中的.ssh目录下添加config文件(这个配置文件制定了我们访问github的时候使用的ssh密钥)
并输入如下所示的内容
#github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/macssh[此处填写你的密钥名称]
然后就可以使用github克隆远程仓库了。
2、win部署
在主目录下打开git bash
ssh-keygen -t ed25519 -C "[email protected]"
( Ed25519 算法)
ssh-keygen -t rsa -b 4096 -C "[email protected]"
同上述画线的过程
然后使用命令start ssh-agent开启ssh-agent服务
然后使用命令 eval "$(ssh-agent -s)"
会有如下输出 Agent pid 59566
然后使用命令
ssh-add [你的密钥保存的地址]
然后就可以克隆远程仓库了。
8、链接远程仓库
添加远程仓库
1、git remote add [远程仓库别名] [远程仓库地址]
2、git push -u [远程仓库名] [分支名]
git remote -v 查看远程仓库
git pull [远程仓库名] [远程分支名]:[远程分支名]
git push 推送
git fetch 只是获取远程仓库的修改但是并不会自动合并到本地的仓库中
9、分支
利用命令git branch
可以查看所有分支
利用命令git branch [文件名]
可以创建分支
利用命令git checkout [分支名]
用于切换分支还可以用于恢复
利用命令git switch [分支名]
用于切换分支
在主分支下利用命令git merge [被合并的分支名]
用于合并分支
利用命令git log -graph --oneline -- decorate --all
可以查看分支合并的过程
利用命令git branch -d [分支名]
用于删除已经合并的分支
利用命令git branch -D [分支名]
用于强制删除未被合并的分支
![截屏2023-05-24 15.00.23](/Users/shiwu/Desktop/截屏2023-05-24 15.00.23.png)
图示
如果使用git rebase main就会把dev分支下的提交记录链接到main分支后,如果使用git rebase dev 就会回溯到共同的节点图示的main3下把dev的提交记录链接到main3和main4之间
感谢师傅geekhour老杨,b站视频链接【【GeekHour】一小时Git教程】 https://www.bilibili.com/video/BV1HM411377j/?share_source=copy_web&vd_source=d4217fffbf02a408fdb5331eddd61636
本文是自己的笔记,记录一下git加深印象。
标签:文件,git,05,仓库,暂存区,分支 From: https://www.cnblogs.com/jjyjxy/p/17435588.html