地基: git、svn相关

git 安装

参考文章@pingcode
在线安装包下载

git - ssh密钥操作

  • 第一步:检查自己电脑是否存在 ssh公钥
    - 指令:ls -al ~/.ssh
  • 第二步:检查自己之前是否配置过git 环境
    - 指令:git config user.name 和 git config user.email
    -
    - 如果需要修改原来的git环境:直接在上面两条命令后面 添加自己要更换的;
    -
    - 如果没有创建:
    - 指令:- git config –global user.name ‘xxxxx’
    - git config –global user.email ‘xxx@xx.xxx’
    - 注意:复制上面指令时 global 前的 ‘ -- ’ 需要手打,否则有可能报错
  • 第三步:生成ssh密钥
    - 指令:ssh-keygen -t rsa -C ‘上面的邮箱’
    -
    - 参数的含义:
    -t 指定密钥类型,默认是 rsa ,可以省略。
    -C 设置注释文字,比如邮箱。
    -f 指定密钥文件存储文件名。
    (接着连点三次回车 会自动生成ssh密钥)
  • 第四步:将rsa.pub里的密钥添加到远端
    - rsa.pub 文件一般都在 c盘 用户文件夹下的.ssh文件夹中;

第五步:测试ssh密钥是否设置成功;

  • $ ssh -T git@github.com (github 测试)
    • Hi 用户名! You’ve successfully authenticated, but GitHub does not provide shell access.(github 绑定成功显示)
  • $ ssh -T git@gitee.com (gitee 测试)
    • Hi 用户名! You’ve successfully authenticated, but GITEE.COM does not provide shell access.(gitee绑定成功显示)

git常用指令

1、git init :初始化本地仓库
2、git status : 查看当前仓库状态;
3、git add . : 将新建文件添加至缓存区;
4、git commit -m “本次提交的描述” : 将添加进缓存区的文件,添加进本地仓库
5、git log : 输出仓库中所有的commit 提交,和与之对应的 id值。
6、git reflog : 可以查看所有 commit 提交的版本号。
7、 git reset --hard commit-id :在 commit 提交的版本之间进行回退。

  • git reset --hard HEAD^
    • HEAD^ :一个 ^ 表示 回退到上一个版本
    • HEAD^^ : 两个 ^ 表示 回退到上上一个 版本
    • 依次类推 …

git 版本回退 git reset

参考文章@木鸟飞

  • git reset --hard :进行已修改或者暂存,但未提交文件的回退

  • git reset --hard origin/master 进行已提交,但未推送的版本回退

  • 1: git reset --hard HEAD^

  • 2: git push -f

    这两条命令是进行已提交且推送的回退,git reset --hard HEAD^为先回退到上一个版本,git push -f 是进行强制推送,覆盖远程分支。

补充内容:

上面的–hard 可以替换成其它的恢复等级,一般用–soft,这样一些修改的内容不会丢失。

多版本回退:

git reset --hard head #当前版本
git reset --hard HEAD^ #回退到上一个版本
git reset --hard HEAD^^ #回退到上上一个版本
git reset --hard HEAD~3 #回退到往上3个版本
git reset --hard HEAD~10 #回退到往上10个版本

根据版本号进行版本回退:

git reset --hard 710ae83

回退后,可以再用 log 和 relog 查看下版本的记录,对比下他们的区别。

相关指令

git log

  • 用来查看 git 的提交记录,但不能查看已经删除的记录。

git reflog

  • 可以查看看所有分支的所有操作记录(包括(包括 commit 和 reset 的操作),包括已经被删除的 commit 记录。

git远程仓库相关指令

1、git remote add origin (这个名字可以随意起)+ 远程仓库 地址:关联远程仓库
2、git push -u origin master : 向远程仓库中 推本地仓库的数据;
git push origin master : 第二次推送则不需要 -u;
3、每次本地仓库的 代码发生变动都需要先, git add . 和 git commit -m “更新代码的描述”;
4、git clone + 远程仓库地址 :下载完成后,本地仓库会自动关联 远程仓库,修改代码的时候只需要push就可以了;
5、★★★ git pull origin master :拉取远程仓库代码到本地;
建议:每次向远程仓库推送(push)之前,先进行一次 拉(pull),因为要保证 远程仓库与本地仓库内的代码一致,才不会出现bug

git创建分支

1、git branch :查看当前所有分支
2、git checkout -b 分支名称 :创建并切换 分支
3、git checkout 分支名称 :切换分支
4、git merge 分支名称 :合并分支;

注意:向A 分支中合并 B分支,需要先 git checkout A 回到A 分支,然后再 git merge B ;

a. 每一次分支中的代码发生变化时,都需要先 git add . , git commit -m " ",向本地仓库中提交一次。
b. 然后根据自己的 需要 向相关的分支中进行 合并 git merge 分支名称;
c. 最后,先 git pull orgin master 拉取一下远程仓库的数据,再 git push origin master 向远程仓库中推送数据;(推送的同时会再远程仓库 创建相对应的分支)

git 仅提交修改文件

git commit < file > -m"your comment"

git 提交部分文件

参考文章@追寻1989
参考文章@前端热爱

主要思路 :

  1. 先将需要提交的代码 暂存 (commit) 一下
  2. 然后更改区 就会 只剩下不需要的文件
    • 在这里插入图片描述
  3. 在命令行输入 命令 " git stash" 将不需要的提交的代码 隐藏(贮藏) 一下, 这时候会隐藏 更改区的文件.
    • 在这里插入图片描述
  4. 点击右上角的更新同步代码,就可以完成更新最新的代码,或者是提交自己想要提交的代码
  5. 在更新和 提交成功之后 , 在命令行输入 " git stash pop " 将之前缓存工作目录的文件提取还原回来
    • 在这里插入图片描述

git 忽略大小写

//  忽略大小写
git config core.ignorecase true

//  取消忽略大小写的配置
git config --unset core.ignorecase

git 切换远程地址

  • 方式一:修改远程仓库地址
    • 【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。
  • 方式二:删除老的地址,然后再添加新的地址
    • 【git remote rm origin】 删除现有远程仓库
    • 【git remote add origin url】添加新远程仓库
  • 查看当前地址仓库地址 git remote -v
  • 参考文章@涵一

git 同时管理两个账号

参考文章@小蒋不素小蒋

git 推送本地代码到远程仓库(空仓库)


cd existing_folder
git init
git remote add origin https://xxxxxxxxx.git (仓库地址)
git add .
git commit -m "Initial commit"
git push -u origin master

git 推送本地代码到已有的远程仓库 (非空仓库)

cd existing_folder
git remote add origin https://coding.geely.com/0109199/ems-screen-monitor.git
git push -u origin --all
git push -u origin --tags

关于使用git命令行跳转到另一个编辑界面(vim编辑器)

解决办法:

  • 按下字母键C(此时进入编辑状态),可以开始修改注释信息了
  • 按下Esc (退出编辑状态); 接着连按两次大写字母Z,就可以保存退出了;
  • 也可以 :q 强制退出

vim相关指令文章:

  • https://blog.csdn.net/sinat_39571186/article/details/78911814

gitee 新建仓库,第一次如何与本地仓库关联

方式一

  1. 在本地新建一个文件夹,然后使用 git clone ,与远程仓库进行关联。
  2. 将创建好的项目复制到 关联好的远端仓库

方式二

  1. 在gitee 仓库创建好之后,会生成一个简易指令的知道,如下图所示。
    在这里插入图片描述
  1. 在本地新建一个文件夹 ,然后右键 git bash here 打开 git 的命令行窗口。
  2. 在命令行窗口输入指令 git init
  3. 然后 将上图中 第二个方框中的指令粘贴到 命令行窗口,回车。
  4. 最后 进行第一次提交
    git add .
    git commit -m ‘first commit’
    git push -u origin “master”

完成上面操作之后 就可以与远程仓库进行关联。

Git冲突:Please commit your changes or stash them before you merge

参考文章@1024_Byte

通过git stash  ---- 通常用这种方法

git stash
git pull
git stash pop

git 推送报错

报错内容:error: src refspec master does not match any. error: failed to push some refs to
常见原因::本地仓库目录中没有文件,空目录不能提交。
解决办法:执行命令 git pull --rebase origin master

一般而言,正常的推送流程应为:

1、在github上创建项目

2、使用git clone https://github.com/name/project.git克隆到本地

3、编辑项目

4、git add . (将变更提交至缓存区)

5、git commit -am “提交说明(注释)”

6、git push origin master 将本地变更推送至远程仓库master分支

参考文章@INTZhou

git 推送报错 fatal: Authentication failed for

参考文章@爱死亡机器人

场景: 再向云端仓库推送本地代码的时候,git 密码输入错误 ,然后报错fatal: Authentication failed for

解决办法:该办法每次推送代码都需要重新输入密码

git config --system --unset credential.helper

解决办法 2: 该办法在输入一次账号密码之后,就回存储在本地,之后推送代码则不需要重新输入

git config --global credential.helper store

git 报错 fatal: repository 'https://github.com/xxx' not found

可能原因:

  1. 本地仓库的地址与远程仓库不一致, 可通过git remote -v查看本地仓库的地址
git remote -v 命令来查看当前的远程仓库配置。

git remote set-url origin <url> 命令来重新配置远程仓库地址。

git config --global credential.helper cache 命令来更新你的认证信息。

  1. 没有改远程仓库的(推拉代码)权限

找负责人给开同权限

svn相关知识点:

主要参考:https://zhuanlan.zhihu.com/p/349437775
博主:慧乐课堂

svn的主要操作:

  SVN检出(SVN Checkout)
  SVN提交(上传 SVN Commit)
   SVN更新(下载 SVN Update )

重新定位:SVN地址发生改变时,需要重新定位
显示日志:查看历史记录

svn检出(svn checkout)

SVN检出是在第一次与SVN服务器建立连接的时候使用

  检出时需要提供:
  	SVN的地址
  	用户名和密码

注意:在检出前,先新建一个文件夹,因为检出时会检出很多文件和文件夹,新建一个文件夹就是为了把所有检出的文件和文件夹放在一起。

检出步骤,如下:

  1. 创建一个空的文件夹(项目名),如:D:\huileketang
  2. 进入新建的文件夹
  3. 右击,选择”SVN 检出…”
  4. 在打开的小窗口中,
    a) 版本库URL:输入项目的svn url地址,
    b) 检出至目录:输入第1步中新建的文件夹目录(D:\huileketang)
  5. 点击 “确定”即可检出。
    注意:如果是第一次检出,则会弹出下面的2张图,输入用户名和密码
  6. 查看本机文件结果

SVN提交(上传 SVN Commit):

  1. 如果你想提交当前文件夹中所有修改的文件或者文件夹,那么你需要在文件夹的空白处右击,并选择“SVN提交©…”

  2. 如果你只想提交某一个文件或者文件夹的最新内容,那么你只需要右击那个文件或者文件夹,并选择“SVN提交©…”

svn更新(下载svn update)

  1. 进入到要下载更新的文件夹里(我的是D:\huileketang)
  2. 在文件夹“D:\huileketang”的空白处右击,如下图,点击“SVN更新(U)…”

重新定位

当SVN地址发生改变时,需要重新定位。
*
方法:在SVN对应的文件夹的空白处右击,选择“TortoiseSVN”—>“重新定位©…”

显示日志

查看历史记录,主要是查看文件或文件夹的提交历史,如谁、什么时间、提交了哪些文件或者文件夹。
@
方法:在SVN对应的文件夹的空白处右击,选择“TortoiseSVN”—>“显示日志(L)”

svn的状态图标的含义

在这里插入图片描述

1、“常规”:绿色圈带白色对勾,主要是表示自己电脑上的文件或者文件夹与SVN服务器上对应的文件一致,在自己电脑没有进行任何修改。

2、“修改”:红色圈带白色感叹号,当你开始编辑一个文件,这个文件的状态就会变成修改状态,图标也会变成红色圆圈带白色感叹号。通过这种状态的变化,你就可以知道自己修改过哪些文件,需要提交哪些文件。

3、“冲突”:黄色三角形带黑色感叹号,是指出现了冲突,一般在同时编辑一个文件时容易出现这种冲突的现象。

4、“只读”:灰色圈带白色对勾,这是设置只读属性后才会出现的标识,直到你获得文件锁才能取消只读。只读文件用这个重载图标来表示你必须在编辑之前先得到一个锁。

5、“已删除”:红色叉,表示相应文件或文件夹被计划删除,或者表示文件缺失。

6、“增加”:蓝色加号,表示文件或文件夹已经被计划加入到版本控制之下。通常是新建的文件或文件夹会有这个标识。

7、“忽略”:灰色圈带白色横线,表示已经不受版本控制了。

8、“无版本控制”:蓝色圈带白色问号,表示暂时还没有版本的控制,但没有被忽略。

9、“锁定”:一把黄色的锁,表示文件被锁定,必须先释放锁才能让别人的修改提交。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值