git学习小记p

Git入门命令

Git原理图

image

创建一个文件夹,定位到该文件夹里

注意下述操作都是在git bash中完成 不是windows命令行

(虽然命令行也可以完成一部分)

用户设置

设置用户名 git config —global user.name 用户名(如果带空格需要加引号即”用户名”)

设置邮箱 git config —global user.email 邮箱

初始化

在文件夹内输入 git init 对文件夹进行版本控制

初始化后出现.git文件夹 所有版本记录都在这里面

初始化后默认处于主分支(默认master)

利用echo命令创建文件

echo “版本1” > lao.md

echo “引号内是要对文件添加的内容” > 要添加的文件

查看状态

git status

可以告诉我们当前哪些文件处于什么状态

输入命令后会弹出下面几行信息


D:\GitTest\abab>git status
On branch master 这一行告诉我们当前所处的分支

No commits yet

Untracked files: 下面是目前处于工作区的文件
(use "git add ..." to include in what will be committed)
lao.md 可以利用add命令将文件添加到缓存区

nothing added to commit but untracked files present (use "git add" to track)


add添加

git add lao.md

将文件由工作区添加到缓存区

git add 后面一定要加制定的文件名

commit提交

git commit

将文件由缓存区提交到本地仓库

提交后默认通过vim编辑器编辑提交信息

编辑后提示信息


D:\GitTest\abab>git commit
[master (root-commit) 86fbaa6] 版本1
1 file changed, 1 insertion(+) 一个信息被修改,插入了一行内容
create mode 100644 lao.md


不需要每次都进入vim编辑器提交信息 非常适合简短的提交信息

git commit -m “提交信息”

例如:git commit -m “版本2和版本3”

git commit -a -m “提交信息”

add和commit合并 同时add和commit

可以使文件从工作区一步到本地仓库

git commit -am “提交信息” (am也可以一起写)

关于同一个文件同时需要add和commit这件事

git log查看前面版本

git log

可以查看前面的版本


image


commit 一串哈希数字 代表着每次不同的commit

Author 提交用户的用户名和邮箱

Date 提交的日期

提交的版本信息

(HEAD → master)简单来说,出现在哪一次就代表当前处在哪个版本?(好像不一定对啊)

HEAD头指针指向当前分支(当前是master) master指向提交?

master表示当前处于主枝下面(这个应该没问题)

按键盘q退出log页面

.gitignore忽略掉不需要上传的文件

(注意是在git bash里面 在windows命令行里touch命令不管用)

touch .gitignore创建.gitignore文件

在.gitignore文件中添加需要忽略的文件名和后缀

添加后再使用git status命令就会发现该文件没有未追踪提示了

就是说如果你新添加或者修改penguins.jpg后,如果没有add和commit,使用git status查看状态时会提醒你add和commit,但是当你将这个文件添加到git ignore后,不管你怎么搞,git status都不会显示和这个文件有关的提示

分支

一篇很好的博客:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424

假如我们要在当前仓库下新增文件,但是还不确定这个文件是否需要,我们就可以在主分支的基础上创建一个新的分支,等新分支文件一切准备好了再合并过来

image

创建分支:

git branch 分支名

例如 git branch bad-boy

这个指令不会让我们立即跳转到新分支上

参数:

-b 表示创建并切换 相当于git branch 分支 + git checkout 分支

删除分支:

git branch -d 分支名

删除分支 如果未合并该分支则会有提示不能删除

git branch -D 分支名

强制?非常确定删除分支,不管是否合并

合并分支:

git merge 分支名

将这个”分支名“合并到当前的分支上

如果合并时 合并的分支和被合并的分支的内容有冲突

合并后会自动保留两分支上冲突的地方并有提示,供我们自己选择删除

image

git branch查看所有分支

当前分支前面会加上*

git checkout 分支名

切换到另一个分支上

该分支下文件夹里的文件都是从主分支里复制过来的

上手GitHub远程仓库

创建仓库

在主页右上角加号 点击New repository

进入创建界面

image

输入Repository name

选择权限是Public还是Private

然后点击Create repository就可以创建了

创建后会到这么一个界面,下面都是一些命令

image

点击蓝字creating a new file可以创建文件 不再赘述

将远程仓库复制到本地

image

一种方式是Download ZIP

但是这样只会下载最新版本的文件,没有.git文件夹即版本历史和记录没有下载

另一种方式是点击复制HTTPS链接

回到本地命令行窗口

在目录下使用命令

git clone 刚才复制的HTTPS链接

会自动下载该仓库下的文件

在GitHub上主支名字为main 本地上主支名字为master

git remote

git remote -v

查看本地仓库和哪些远程仓库有联系

origin表示远程仓库

push

直接在当前分支使用命令

git push

输入账号密码后 将文件push到远程仓库

但是该方法自2021年开始禁止了,需要用token来push

那么如何来获取token呢?

回到github主页,点击头像,选择settings

image

在左侧侧边栏下方选择Developer settings

再找到Personal access tokens

image

点击右上方Generate new token

image

填写一些生成token需要的设置

image

Note是该token的名字

Expiration是该token的有效期

Select scopes可以设置用户的权限?实现不同用户有不同的权限(应该是给不同的token吧,不同token的权限不同,给不同的人不同的token?)

设置好后点击Generate token生成token

生成后复制token即可

(生成token后github还会给发个邮件欸)

获取token后的push

拿到token后回到命令行窗口

再次git push

输入用户名

但是不要输入密码,输入我们刚刚复制的token

(或者好像可以直接输入token)

即可把本地仓库的内容push到远程仓库上啦

git fetch

用git fetch拉取远程仓库时,本地文件是暂时不会发生变动的,只是把文件拉到了本地版本库

fetch也是可以制定本地版本库和远程仓库名的

想要知道本地版本库和远程仓库的区别,可以使用git diff

git diff 远程仓库名/分支名

例如:git diff origin/main

没有问题的话就可以直接git pull 把仓库的内容直接整合到工作区

VSCode的git功能

欸嘿
没写


__EOF__

本文作者cheng_zhi
本文链接https://www.cnblogs.com/chengzhid/p/16529232.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cheng_zhi  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示