git 生成秘钥连接远程仓库
二、打开GitBash ,用cd命令进入本地项目目,然后把初始化一下,把本地的目录变成git本地仓库, git status 可以查看本地目录的状态信息
git init
git status
三、将你本地仓库与码云上的远程仓库关联起来
git remote add origin https://gitee.com/fox9916/demo.git
四、在你准备上传你的项目之前,最好更新一下项目,确保没有和远程仓库的代码有冲突
git pull --rebase origin master
五、把你的项目复制到这个目录下,用命令添加你要上传的项目,再提交到本地暂存区,最后把本地仓库项目提交到远程仓库。git 是强烈建议你在提交代码的时候,要写备注注释的,所以既然人家是强烈建议,你就别懒了。
git add . 添加目录下所有发生改变的文件
git commit -m '注释信息'
git push -u origin master 本地仓库代码提交至远程仓库(有时候会提交失败,可以尝试$ git push -u origin master -f 强制提交,只建议在第一次提交中使用)
如图,上传成功!
六、新建一个目录,从码云上把上传的代码下载下来:
git clone https://gitee.com/fox9916/demo.git
这些都是最基本的使用,平时开发上传、下载基本够用了,如果要开分支什么的,也很简单。
查看所有分支 :gitbranch -a
切换到某一分支:git checkout 分支名称
合并分支:git merge 原分支 目标分支
提交命令有两个,git push origin master(正常提交)和git push origin master -f(强制提交,强制提交可能会把之前的commit注释信息,不会改变修改的代码,慎用),都是提交到master分支
查看远程分支 git branch -a或git branch -r
创建本地分支 git branch demo_fenzhi
切换到本地分支 git checkout demo_fenzhi
删除本地分支 git branch -d demo_fenzhi
查看本地分支状态 git branch
创建远程的分支,并且把本地分支推送到远程分支上
git push origin demo_fenzhi:demo_fenzhi 本地分支名称:远程分支名称
删除远程分支
git push origin :demo_fenzhi
或git push origin --delete demo_fenzhi
本地分支与远程分支比较 git diff demo_dev origin/demo_fenzhi //demo_dev为本地分支,demo_fenzhi为远程分支
本地分支关联远程分支 git pull origin demo_fenzhi
新分支并切换到分支 git checkout -b bende_fenzhi
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
恢复删除后未git add的文件 git checkout -f或git clean -df
git fetch origin branchname:branchname
可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname
git checkout origin/remoteName -b localName
获取远程分支remoteName到本地新分支localName,并跳到localName分支
git还原某个特定的文件到之前的版本
场景: 对于某个git控制下的文件进行了修改,但是改的不满意,想退回到改之前的版本。假定该文件为 src/main/main.c
解决方法:
第一步: 在命令行中输入 gitlog src/main/main.c 得到该文件的commit 历史。 会得到类似下面的界面
第二步: 复制需要回退版本的hash,在此假设我们回退到 d98a0f565804ba639ba46d6e4295d4f787ff2949 ,则复制该序列即可
第三步:checkout 对应版本。格式为 git checkout <hash> <filename>, 在此即为命令行中输入 git checkout d98a0f565804ba639ba46d6e4295d4f787ff2949 src/main/main.c
第四步: commit checkout下来的版本。如: git commit -m "revert to previous version"
1、git reset
没有push,这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题.
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交commit_id(79f673d631b08907496ce792f429e1f00da25b73),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
· HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset--hard 79f673d631b08907496ce792f429e1f00da25b73。
· 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
· 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
2、git revert
已经push,对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令
git revert用一个新提交来消除一个历史提交所做的任何修改.
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push既可以把线上的代码更新.(这里不会像reset造成冲突的问题)
revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.
git revertc011eb3c20ba6fb38cc94fe5a8dda366a3990c61
3、两者区别
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的效果是一样的,其实完全不同.
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突(或git push -f强制推送).但是revert并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset恢复部分的代码依然会出现在历史分支里.但是revert方向提交的commit并不会出现在历史分支里.
第三:reset是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
现在你想切换分支,但是你还不想提交你正在进行中的工作;所以你储藏这些变更。为了往堆栈推送一个新的储藏,只要运行 git stash:
要查看现有的储藏,你可以使用 git stash list:
如果你想应用更早的储藏,你可以通过名字指定它,像这样:git stash apply stash@{2}。如果你不指明,Git 默认使用最近的储藏并尝试应用它:
apply 选项只尝试应用储藏的工作——储藏的内容仍然在栈上。要移除它,你可以运行 git stash drop,加上你希望移除的储藏的名字:
git 生成秘钥连接远程仓库的更多相关文章
- github-SSH模式如何配置秘钥clone远程仓库以及分支切换
一.ssh模式clone 恕我无知,之前使用git命令都是https模式,该模式每次push都需要输入账号和密码,而且速度会根据的网速的快慢而定. 近日电脑重装了系统,在用SSH模式clone远程仓库 ...
- Git常用命令+本地连接远程仓库
一.git命令整理 git config --global user.email "邮箱名":绑定GitHub邮箱 git config --global user.name &q ...
- MAC下配置ssh让SourceTree通过秘钥访问远程仓库
问题描述 由于TortoiseGit没有MAC版本,我们使用了SourceTree来替代. 在帮同事解决Mac下的Git的时候,碰到一个问题:SourceTree无法使用ssh方式提交代码,这是由于没 ...
- git生成秘钥之后同步到服务器
现在本地生成ssh私钥和公钥 设置本地git用户配置 $ git config --global user.name "username"$ git config --global ...
- git 生成秘钥
Permission denied (publickey). fatal: The remote end hung up unexpectedly 应该是ssh key过期了吧 试着重新创建ssh k ...
- Git仓库由HTTPS切换成ssh秘钥连接
Git关联远程仓库可以使用https协议或者ssh协议. [特点/优缺点] ssh: 一般使用22端口: 通过先在本地生成SSH密钥对再把公钥上传到服务器: 速度较慢点 https: 一般使用443端 ...
- 配置使用 git 秘钥连接 GitHub
配置使用 git 秘钥连接 GitHub 在Linux下部署Git环境 1.安装Git. 使用命令安装 git . sudo apt-get install git 2.创建一个 Github 账号 ...
- 生成SSH秘钥连接github(详细教程)
第一步.首先,检查下自己之前有没有已经生成: 在开始菜单中打开git下的git bash(当然,在其他目录下打开git bash也是一样的): 然后执行 cd ~/.ssh 第二步.如果能进入到.ss ...
- git连接远程仓库时,出现“ Repository not found"的解决办法
2018-08-25 今天连接远程仓库时,出现: 原来是远程仓库地址名字错了. 解决方法: 1.找到.git目录 2.进入.git找到config文件 3.修改config里面的远程地址url
随机推荐
- Leetcode49. Group Anagrams字母异位词分组
给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...
- js对象属性方法大总结
数组(Array):系列元素的有序集合: 详细演示请看:[js入门系列演示·数组 ] http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.ht ...
- Javascript-正则表达式常用验证
<div> <h1>一.判断中国邮政编码匹配</h1> <p>分析:中国邮政编码都是6位,且为纯数字</p> <div>邮政编码 ...
- 威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复
背景 近日,阿里云安全监测到watchbog挖矿木马使用新曝光的Nexus Repository Manager 3远程代码执行漏洞(CVE-2019-7238)进行攻击并挖矿的事件. 值得注意的是, ...
- QT_强杀进程
#ifdef WIN32 bool res = false; HANDLE hToolHelp32Snapshot; hToolHelp32Snapshot = CreateToolhelp32Sna ...
- 高维护性的javascript
养成良好的编码习惯,提高代码的可维护性 避免定义全局变量或函数 定义全局的变量和函数,会影响代码的可维护性.如果在页面中运行的javascript 代码是在相同的作用域里面,那就可能代码之间存在互相影 ...
- Hibernate:**not found while looking for property: id https://blog.csdn.net/weixin_43827144/article/details/88935334
https://blog.csdn.net/weixin_43827144/article/details/88935334 在程序执行时可能会报找不到属性的错误:例如:class Student n ...
- Katalon系列二十:读写Excle
import org.apache.poi.xssf.usermodel.XSSFSheet import org.apache.poi.xssf.usermodel.XSSFWorkbook Fil ...
- Git-svn:用git管理svn仓库
1. 将svn仓库中的项目导入本地git仓库 使用 git svn clone [svn_url] 命令即可完成从svn仓库导入本地,由于该命令会将svn仓库中所有版本的更新都会同步到本地仓库,如果项 ...
- JS DOM节点的增删改查
合并拆分 行内样式 script写在html里面