第五篇伴学笔记~
今天的内容是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而window是type
如果你想要强制推送并覆盖远程分支的更改(请注意这可能会导致其他开发者的工作丢失),你可以使用以下命令:
git push origin master --force
注意!工作区暂存区和提交与分支:工作区和暂存区在每一个分支是一样的,显示内容是先展示工作区与暂存区的,没有的话才是仓库分支的内容
找到git在电脑中安装的位置:在git bash中输写命令:where git
vscode使用命令行:ctrl+shift+p调出命令行