git 安装
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 提交部分文件
主要思路 :
- 先将需要提交的代码 暂存 (commit) 一下
- 然后更改区 就会 只剩下不需要的文件
- 在命令行输入 命令 " git stash" 将不需要的提交的代码 隐藏(贮藏) 一下, 这时候会隐藏 更改区的文件.
- 点击右上角的更新同步代码,就可以完成更新最新的代码,或者是提交自己想要提交的代码
- 在更新和 提交成功之后 , 在命令行输入 " 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 新建仓库,第一次如何与本地仓库关联
方式一
- 在本地新建一个文件夹,然后使用 git clone ,与远程仓库进行关联。
- 将创建好的项目复制到 关联好的远端仓库
方式二
- 在gitee 仓库创建好之后,会生成一个简易指令的知道,如下图所示。
- 在本地新建一个文件夹 ,然后右键 git bash here 打开 git 的命令行窗口。
- 在命令行窗口输入指令 git init
- 然后 将上图中 第二个方框中的指令粘贴到 命令行窗口,回车。
- 最后 进行第一次提交
git add .
git commit -m ‘first commit’
git push -u origin “master”
完成上面操作之后 就可以与远程仓库进行关联。
Git冲突:Please commit your changes or stash them before you merge
通过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分支
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
可能原因:
- 本地仓库的地址与远程仓库不一致, 可通过
git remote -v
查看本地仓库的地址
git remote -v 命令来查看当前的远程仓库配置。
git remote set-url origin <url> 命令来重新配置远程仓库地址。
git config --global credential.helper cache 命令来更新你的认证信息。
- 没有改远程仓库的(推拉代码)权限
找负责人给开同权限
svn相关知识点:
主要参考:https://zhuanlan.zhihu.com/p/349437775
博主:慧乐课堂
svn的主要操作:
SVN检出(SVN Checkout) SVN提交(上传 SVN Commit) SVN更新(下载 SVN Update )
重新定位:SVN地址发生改变时,需要重新定位
显示日志:查看历史记录
svn检出(svn checkout)
SVN检出是在第一次与SVN服务器建立连接的时候使用
检出时需要提供: SVN的地址 用户名和密码
注意:在检出前,先新建一个文件夹,因为检出时会检出很多文件和文件夹,新建一个文件夹就是为了把所有检出的文件和文件夹放在一起。
检出步骤,如下:
- 创建一个空的文件夹(项目名),如:D:\huileketang
- 进入新建的文件夹
- 右击,选择”SVN 检出…”
- 在打开的小窗口中,
a) 版本库URL:输入项目的svn url地址,
b) 检出至目录:输入第1步中新建的文件夹目录(D:\huileketang)- 点击 “确定”即可检出。
注意:如果是第一次检出,则会弹出下面的2张图,输入用户名和密码- 查看本机文件结果
SVN提交(上传 SVN Commit):
如果你想提交当前文件夹中所有修改的文件或者文件夹,那么你需要在文件夹的空白处右击,并选择“SVN提交©…”
如果你只想提交某一个文件或者文件夹的最新内容,那么你只需要右击那个文件或者文件夹,并选择“SVN提交©…”
svn更新(下载svn update)
- 进入到要下载更新的文件夹里(我的是D:\huileketang)
- 在文件夹“D:\huileketang”的空白处右击,如下图,点击“SVN更新(U)…”
重新定位
当SVN地址发生改变时,需要重新定位。
*
方法:在SVN对应的文件夹的空白处右击,选择“TortoiseSVN”—>“重新定位©…”
显示日志
查看历史记录,主要是查看文件或文件夹的提交历史,如谁、什么时间、提交了哪些文件或者文件夹。
@
方法:在SVN对应的文件夹的空白处右击,选择“TortoiseSVN”—>“显示日志(L)”
svn的状态图标的含义
1、“常规”:绿色圈带白色对勾,主要是表示自己电脑上的文件或者文件夹与SVN服务器上对应的文件一致,在自己电脑没有进行任何修改。
2、“修改”:红色圈带白色感叹号,当你开始编辑一个文件,这个文件的状态就会变成修改状态,图标也会变成红色圆圈带白色感叹号。通过这种状态的变化,你就可以知道自己修改过哪些文件,需要提交哪些文件。
3、“冲突”:黄色三角形带黑色感叹号,是指出现了冲突,一般在同时编辑一个文件时容易出现这种冲突的现象。
4、“只读”:灰色圈带白色对勾,这是设置只读属性后才会出现的标识,直到你获得文件锁才能取消只读。只读文件用这个重载图标来表示你必须在编辑之前先得到一个锁。
5、“已删除”:红色叉,表示相应文件或文件夹被计划删除,或者表示文件缺失。
6、“增加”:蓝色加号,表示文件或文件夹已经被计划加入到版本控制之下。通常是新建的文件或文件夹会有这个标识。
7、“忽略”:灰色圈带白色横线,表示已经不受版本控制了。
8、“无版本控制”:蓝色圈带白色问号,表示暂时还没有版本的控制,但没有被忽略。
9、“锁定”:一把黄色的锁,表示文件被锁定,必须先释放锁才能让别人的修改提交。