git学习小记p
Git入门命令
Git原理图
创建一个文件夹,定位到该文件夹里
注意下述操作都是在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
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也可以一起写)
git log查看前面版本
git log
可以查看前面的版本
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
假如我们要在当前仓库下新增文件,但是还不确定这个文件是否需要,我们就可以在主分支的基础上创建一个新的分支,等新分支文件一切准备好了再合并过来
创建分支:
git branch 分支名
例如 git branch bad-boy
这个指令不会让我们立即跳转到新分支上
参数:
-b 表示创建并切换 相当于git branch 分支 + git checkout 分支
删除分支:
git branch -d 分支名
删除分支 如果未合并该分支则会有提示不能删除
git branch -D 分支名
强制?非常确定删除分支,不管是否合并
合并分支:
git merge 分支名
将这个”分支名“合并到当前的分支上
如果合并时 合并的分支和被合并的分支的内容有冲突
合并后会自动保留两分支上冲突的地方并有提示,供我们自己选择删除
git branch查看所有分支
当前分支前面会加上*
git checkout 分支名
切换到另一个分支上
该分支下文件夹里的文件都是从主分支里复制过来的
上手GitHub远程仓库
创建仓库
在主页右上角加号 点击New repository
进入创建界面
输入Repository name
选择权限是Public还是Private
然后点击Create repository就可以创建了
创建后会到这么一个界面,下面都是一些命令
点击蓝字creating a new file可以创建文件 不再赘述
将远程仓库复制到本地
一种方式是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
在左侧侧边栏下方选择Developer settings
再找到Personal access tokens
点击右上方Generate new token
填写一些生成token需要的设置
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__

本文链接:https://www.cnblogs.com/chengzhid/p/16529232.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通