青训营X豆包MarsCode 技术训练营第五课 | 豆包MarsCode AI 刷题

11 阅读7分钟

第五篇伴学笔记~

今天的内容是git

概念

集中式版本控制:SVN

分布式:git

基本操作

ll——查看所有内容

ls -lA——查看隐藏内容

git命令和window,Linux命令兼容

window中是用CRLF即\r\n作为换行,linux是用LF即\n换行

cd后面不接任何东西会跳转到用户目录同cd ~

pwd显示当前工作目录

ls,dir显示当前目录所有内容

ls -a显示当前目录所有内容,包括点开头的隐藏文件

ls -l显示当前目录所有详细文件信息

如何看:

--第一列代表文件针对于自己,团队,其他人的可读写执行属性

--第二列是文件个数

--第三列是文件所属用户

--第四列是文件所属的组

--第五列是以btyte为单位的文件大小

--第六列是最后修改的时间

--最后一列是文件名称

mkdir创建空白文件夹

cp复制文件

cp -r复制文件夹

mv移动文件到另一个文件夹

mv可以将文件或者文件夹改名

rm删除文件

用-i删除时会要求确认是否删除,这时用y或者n来回答

-f是强制删除

本地库初始化:git init

文件操作指令

创建空白文件:touch 文件名

删除文件:rm 文件名

文件操作:vim 文件名

查看文件:cat 文件名

git基础命令

日志比较多时,使用命令显示可以使用上下键进行翻页查看,q键退出

查看提交日志:git log

显示更详细的日志包括修改代码行数:git log --stat

包括修改的内容:git log -p

美化提交日志:git log --pretty

将提交日志一行显示:git log --pretty =oneline

将提交日志自定义格式显示:

图形化形式呈现:git log --graph

简单的日志:git reflog

注意!最新提交的在最上,是{0}

git reflog和git log区别:若版本回退,log只能看见版本回退的那个版本之前提交的,而reflog都能看见,所以要看版本最好使用reflog

查看详细:git diff

设置用户名:git config --global user.name或者.email

初始化本地库:git init

查看本地状态:git status

添加:git add

在本地版本库中想要删除某个文件:

1、删除后不做任何操作:git rm 文件名

2、在版本库中删除文件,并将文件移到工作区未跟踪状态:git rm --cached 文件名

提交:git commit -m '内容'

取消提交:git reset head~ --soft

提交加工作区到暂存区:git commit -am ' 内容'

回到之前版本:git reset --hard 版本号

--hard参数有啥意义?--hard会回退到版本的已提交状态,而--soft会回退到版本的未提交状态,--mixed会回退到版本位于工作区(未暂存未提交)的状态。

如果后悔了,可以使用git reflog命令了解之前的指令,找到之前的版本号再回退

HEAD是当前的版本

HEAD^是上一个版本

HEAD^^和HEAD~2是上上一个版本

储存:git stash push

恢复储存内容:git stash apply

查看存储内容:git stash list

写错代码的版本回退

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就将暂存区的东西提到工作区,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用git reflog找到想要回退的版本号,然后使用git reflog --hard 版本号

注意!git checkout是将版本库的版本代替工作区的版本

分支

查看分支:git branch --list

分支版本:git branch -v

创建分支:git branch 版本

切换分支:git checkout 分支名

创建并切换分支名:git checkout -b 分支名

删除分支:git branch -d 分支名

强制删除分支:git branch -D 分支名

合并分支:git merge 分支名

若发生冲突要修改文件并将文件提交,在另一分支也要合并主分支的内容

分支规范

ssh公钥

在自己的本地电脑上不需要多次登录

产生本地电脑公钥

操作远程仓库

删除远程仓库:git remote rm origin

添加仓库地址:git remote add 仓库别名 地址

给远程仓库改名:git remote rename 仓库原名 要改的名

查看远程仓库:git remote

如果远程库有最新版本要先拉取再推送

将dev的分支推送给master:git push origin dev:master

将自己本地库的分支与远程的分支相连并且推送信息:git push -u

克隆:git clone 仓库路径 本地目录

查看远程和本地的分支情况:git remote show origin

抓取和合并:pull拉取=fetch+merge origin/master

或者是merge FETCH_HEAD

在执行完fetch后会将远程分支拉取下来,若要在本地建立一个远程分支的跟踪分支可以使用git checkout -b feature origin/feature

远端仓库发生冲突时,先git pull拉取然后人为修改即可

若本地库和远程库没有共同历史时要拉取远程库内容需要允许不关联历史代码:

git pull origin master --allow-unrelated-histories

暂存

如果在一个分支上开发过程中要去另一个分支,但是因为该分支没有将工作区内容提到暂存区以及本地库无法checkout,可以先用stash保存一下工作区的内容,切换到另一个分支后弄完回来用git stash apply恢复暂存信息即可

git标签

git push代码连接不上github出现connection refused可能出现代理原因关于使用Git出现“git Failed to connect to 127.0.0.1 port xxxx: Connection refused”的问题解决方案-CSDN博客

看代理

 // 首先,查一下当前全局的 http 代理:
 git config --global http.proxy
 // 如果有代理,就取消
 git config --global --unset http.proxy
 ​
 ​
 // 再查 https 的代理:
 git config --global https.proxy
 // 同样的,有就取消
 git config --global --unset https.proxy

出现ssl证书认证Git出现SSL certificate problem 报错的解决方法_git ssl certificate problem-CSDN博客

window443端口被占用关于Windows 443端口被占用问题的解决_443端口被占用怎么解决-CSDN博客

1、找到进程:netstat -aon|findstr 443

2、杀死进程

3、若拒绝访问需要ctrl + alt + del 打开任务管理器找到进程号右键结束

Git 两个本地分支切换为什么代码自动同步了(解决!)

因为branchB的文件只在暂存区,没有提交...

其中github不支持用户名加密码的形式,要生成token令牌当密码,或者用ssh鉴权

生成ssh密钥

 //进入ssh目录后
 ssh-keygen -t rsa -b 4096 -C "评论(一般写邮箱)"//生成ssh
 查看.ssh内容
 linux是ls而window是dir
 查看文件内容
 linux是cat而windowtype

如果你想要强制推送并覆盖远程分支的更改(请注意这可能会导致其他开发者的工作丢失),你可以使用以下命令:

 git push origin master --force

注意!工作区暂存区和提交与分支:工作区和暂存区在每一个分支是一样的,显示内容是先展示工作区与暂存区的,没有的话才是仓库分支的内容

找到git在电脑中安装的位置:在git bash中输写命令:where git

vscode使用命令行:ctrl+shift+p调出命令行