git
分布式版本控制系统
拉取的远程仓库代码的地址
github中配置
常用git命令
克隆一份到本地
进入项目后,可以使用
git log
查看当前分支 及修改提交记录
远程的仓库名称 自动创建
git remote (origin)
可以更改
本地仓库 自动生成一个默认的主干分支 master=>origin/master 代码版本
本地仓库的代码目录即git的工作区
把工作区的代码改动,提交到暂存区当中
git add .
添加所有修改 git add main.cpp 添加指定文件
将暂存区的代码提交到本地仓库的代码分支上 此时是master分支 故提交到本地的master分支上
git commit -m "对当前修改的说明"
把本地仓库的代码 推送到远程仓库中 哪个仓库?origin
git push origin master
把本地仓库master的分支代码推送到远程仓库origin的master分支上
git branch
查看正在哪个分支上面工作
当前工作的 前面会有*
idea与git
在idea下用自带的vcs来完成git相关的操作
1、github创建一个新项目
关联远程分支
2、跟远程仓库进行关联
本地项目还未接入版本控制系统 创建git仓库
管理远程
对项目进行判断 哪些文件是无需进行版本管理
.mvn文件没有什么用 可以点击添加到.gitignore里面 不会进入版本管理
初始化
定义用户名称
创建分支
在我们做开发时候 一般不会在master上面做开发
master这个分支一般是用来接收别的分支合并过来的内容
右下角新建一个branch分支
提交的时候这个新建的分支 也会在远程的一个仓库里新建一个分支 往上推送
如何解决冲突
基不同 推送被拒绝了
git rebase 变基
rebase后是一条直线
git merge
提交的记录并不会合并到一条直线上面去 而是一条曲线 有一个merge节点在此合并了
cherry pick
防止代码污染或者从废弃的分支当中挑选一些提交的内容
下图可以发现test01是feature01上一个特有的提交内容 feature02上没有test01
利用cherry pick 产生一个新的提交记录 从别的分支把想要的内容合到现在的分支上面来
patch
防止污染代码,先不给git push的权限,在本地先写好代码,打一个patch包,给有权限的人提交
本地写了代码发现没用-》回滚
选择刚刚的patch文件导入
pull request
如果写好代码不直接merge,而是要让reviewer进行review一遍再merge
邀请进行review代码
git回滚与强推
找回代码 右键local history -> revert以下即可
vscode 与 git
如何查看是一个git的工程 在终端可看到
如果没有 用 git status
增加一个文件 文件名为绿色 产生U符号->untracked 表示没有被git跟踪的文件
修改的文件 变黄 产生M符号->modify 表示修改的文件
删除文件
git管理的界面
点击加号 文件被添加到Staged Changes 相当于在命令行执行git add操作 add之后被添加到暂存区
都添加后 Changes下面没有东西了 都在暂存区
右边可修改 左边只读
添加提交的message
git已提交
以下是顺手学的
ssh远程登录
基础知识
ssh是一种加密的网络通信协议
服务器客户端模式 c/s 默认端口号22
需要保证处在同一个局域网下面
免密登录
(无需使用密码)
别名登录
在客户端操作 即当前的电脑
免密登录
客户端keygen生成一个公钥一个私钥
通过ssh-copy-id的命令 把客户端机器上公钥的内容 复制到服务器的某目录下的文件如下
服务器可以接受多个客户端连接 可以配置多个
查看文件,无公钥私钥文件,公私钥文件开头是id
即成功
实际应用
scp命令行文件传输
传输大文件
传整个目录
可以可视化传输 Xshell XFTP
VSCode远程开发
下载插件remote ssh
点击
config文件的两个别名显示 点击即可连接服务器
打开了一个新的vs页面 左下角有变化
直接用当前页面连接
关闭在file中
github免密push pull
git push后需要输入用户名 和密码 非常繁琐!!
获取公钥之后 在github仓库的setting里
即成功 无需输入密码 https和ssh差不多