由于之前一直使用svn,现在项目使用git,顾根据网上找的学习资料,自己梳理了下,收获蛮多,这里做个记录,如果能帮助到您那是最好不过的。

1.大致步骤

使用工具:idea,github,码云
webstorm和idea由于都是一个公司的产品,操作手法基本一致,这里主要是讲idea
1.安装idea,下载git工具,idea中进行关联
2.在本机上生成公钥和私钥,然后在自己的github和码云账号上进行注册,这样才能把自己的项目上传上去。
3.在主分支master上进行git add,commit,push,pull等演示操作
4.模拟开个分支然后再合并主分支的操作
5.使用stash存储合并主分支
6.模拟一些特殊场景的报错解决方法
7.github和码云上传的介绍
8.本次学习git,github,码云所推荐您看的一些文章

2.git客户端下载

2.1 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!打开Git Bash 命令行操作界面。

 
image.png

2.2创建ssk,获得本机的公钥和私钥

ssh-keygen -t rsa -C "youremail@example.com"
 
image.png

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人,目录就是上面的c:/users/sunjian/.ssh/id_rsa
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

3.私钥公钥配置好了,现在上传到github的路已经打通了。
3.1在idea上新建一个springboot项目用来测试github

 
image.png

这步作用主要是可以把本地项目上传到github上面

 
image.png
 
image.png

现在就先把这个springbootdemo上传到github上面,然后在测试commit,add,pull,push

 
image.png
 
image.png
 
image.png
 
image.png

如何把本地修改的文件先放到本地库中再从本地库中去除

 
image.png
 
image.png

如果是新增文件夹,一定要把文件夹git add进去,光add文件也不行.

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

push完成,远程github服务器更新了

 
image.png
 
image.png

相当于git log这个指令

 
image.png
 
image.png

compare with 也是和最近一次线上版本进行比较,compare with branch是和分支上的代码进行比较.
show current revision 可以查看此次文件提交的版本号

 
image.png
 
image.png
 
image.png
 
image.png

竟然能够回退上2个版本,服务器上的没删,本地的回退了2个版本。那就要能够返回到最近那个版本。如何操作呢

 
image.png

另外由于回退到上2个版本了,黄色卡片(head)现在指向的是springbootdemo测试git和github,所以这个head就是一个版本的index下标

 
image.png
 
image.png

这个版本号也没必要写全,git是模糊搜索的,不写全可能会搜索出多个版本,你在选择其中一个版本即可

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

如果想把远程master分支上的TestDemo2也删除掉,先本地删除后,再commit changes到master分支,就可以删掉master分支上的TestDemo2

 
image.png
 
image.png
 
image.png

commit之后只是放到了暂存区,然后还需要push之后才能更新master分支的版本库,删除testdemo2

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

说明现在是在dev的分支上,我们现在git add,commit,push,先提交到自己的dev分支上

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
![image.png](//upload-images.jianshu.io/upload_images/5548226-12710c7cf02bf76a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

status20171227这个相当于是一个临时存储的id,需要记录,然后再右下角new branch,创建分支的时候吧status20171227记录上去即可
status和new branch普通分支的区别是:比如在master主分支基础上创建了一个status,那就是吧master主分支存储起来放到另外一个分支上去进行修改,改完以后在恢复到master上面进行合并。
new branch就如前面看到的,只是将master当中其中一部分已经commit的放到另外一个分支上去,不是master全部内容
这些操作只要commit即可,不需要push远程仓库,commit就是放在缓存区,然后本地合并完以后,再push到远程分支上。

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

接下来说下如何使用码云

首先要注册码云的账号密码,操作手法和github差不多,把公钥和私钥去码云那边注册。

 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png
 
image.png

总结:本次git学习推荐网站
使用WebStorm/IDEA上传本地项目到GitHub
廖雪峰的官方网站
本次学习的过程:一开始先通过本地git,git bash非图形化界面练了遍,然后再根据软件来操作,git里面有很多命令,软件当中的一些操作也是常用指令,如果满足不了需求,可以自己输入指令。下面是git一些常用指令。

创建文件夹:          mkdir <name>
进入文件夹: cd <name>
显示当前目录: pwd
把当前目录变成Git: git init
显示隐藏目录: ls -ah
查看git仓库状态: git status
把文件添加到git仓库: git add <file name>
把文件提交到仓库: git commit -m "说明"
查看修改后的不同: git diff
查看提交历史: git log --pretty=oneline
回退到上一个版本: git reset --hard HEAD^
回退到某个版本: git reset --hard <commit id>
查看命令历史: git reflog
工作区和暂存区对比: git diff
暂存区和分区对比: git diff -- cached
工作区和分支对比: git diff -- <file...>
丢弃工作区的修改: git checkout -- <file...>
撤销暂存区的修改: git reset HEAD <file...> + git checkout -- <file...> 或 git reset --hard HEAD
删除工作区文件: rm <file...>
从版本库删除该文件: git rm <file...> + git commit -m "说明"
撤销工作区文件的删除: git checkout -- <file...>
撤销暂存区文件的删除: git reset HEAD <file...> + git checkout -- <file...> 或 git reset --hard HEAD
创建SSH Key: ssh-keygen -t rsa -C "15521232672@163.com"
关联一个远程库: git remote add origin git@github.com:RaymondHww/learngit.git
推送master分支的内容: git push -u origin master (第一次推送要参数 -u ,之后就不用了)
从远程克隆仓库到本地: git clone git@github.com:RaymondHww/gitskills.git
查看分支: git branch
创建分支: git branch <name>
切换分支: git checkout <name>
创建+切换分支: git checkout -b <name>
合并某分支到当前分支: git merge <name>
删除分支: git branch -d <name>
查看分支合并情况: git log --graph --pretty=oneline --abbrev-commit
使用普通模式合并: git merge --no-ff -m "说明" dev
把工作现场储藏: git stash
查看储藏的工作现场: git stash list
恢复储藏的工作现场: git stash apply stash@{0}
删除stash内容: git stash drop stash@{0}
恢复并删除stash内容: git stash pop
强行删除未合并的分支: git branch -D <branch_name>
显示详细的远程库信息: git remote -v
推送分支到远程库: git push origin master 或 git push origin dev
克隆远程库到本地后只有master分支
在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联: git branch --set-upstream branch-name origin/branch-name
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream branch-name origin/branch-name。
tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。
打一个新标签到最新的提交上: git tag v1.0
打一个新标签到历史的提交上: git tag v1.1 <commit-id>
查看所有标签: git tag
查看标签信息: git show v1.0
创建带有说明的标签: git tag -a v1.2 -m "说明" <commit-id>
通过-s用私钥签名一个标签: git tag -s v1.3 -m "说明" <commit-id>
删除本地标签: git tag -d v1.0
推送某个标签到远程: git push origin <tag-name>
一次性推送全部尚未推送到远程的标签:git push origin --tags
删除已经推送到远程的标签: git tag -d v1.0 然后 git push origin :refs/tags/v1.0 原文链接:https://www.jianshu.com/p/89899575e268 关注我的公众号,都是满满的干货!

idea和Webstorm上使用git和github,码云的更多相关文章

  1. GIT 版本管理-github&码云

    GIT 是什么 git是一个用于帮助用户实现版本控制的软件. 把本地代码push到远程服务器 git add.git commitpush code to remove machine.git pus ...

  2. 使用webstorm上传代码到github

    使用webstorm上传代码到github 字数681 阅读330 评论0 喜欢5 之前使用过webstorm上传代码到github,过了几个月竟然发现自己忘记了,好记性不如烂笔头啊,今天又重新用了一 ...

  3. 通过Webstorm上传代码到Github、更新代码后同步到github及克隆github代码到本地的方法

    导读: Github做为IT爱好者分享代码的一个知名的平台,广受大家喜欢,那么我们平时该怎么将自己写的代码上传到github上面保存并且提供给其他人参考? 我想方法不外乎如下几个: 1.直接在gith ...

  4. git+可视化工具+github/码云

    git (实际上git和TortoiseGIT是一回事,只是TortoiseGIT把git命令行功能做了一个可视化处理,所以下面git和TortoiseGIT实现功能是一样的) 1.如何使用Git上传 ...

  5. 利用Typora+PicGo+OSS+Git+Github/码云搭建个人云笔记

    搭建个人云笔记 对于程序员来讲,使用markdown可以帮助我们快速地写作,书写出排版好看,颜值高的笔记,使用markdown来书写文档相比于使用word要简单快捷的多 市面上有很多markdown的 ...

  6. Windows下配置Git多账号github码云

    Windows下配置Git多账号github码云 1.配置了全局用户名和邮箱 $ git config --global user.email "你的邮箱" $ git confi ...

  7. github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载

    github下载速度慢甚至多次失败,通过码云的导入功能导入github项目到码云上,然后再从码云下载 参考 https://blog.csdn.net/kcx64/article/details/83 ...

  8. IDEA上的项目托管到码云步骤

    IDEA上的项目托管到码云步骤:1.安装Git2.idea上配置Git    Setting-Version Control-Git    把git.exe改为安装的Git的执行路径如:D:\Prog ...

  9. Git学习与码云实战

    Git学习与码云实战 一.Git安装 概述: Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具. 下载安装: 下载地址:http ...

随机推荐

  1. Python待分析的模块

    fcntl 文件控制模块 http://docs.python.org/2.7/library/fcntl.html#module-fcntl struct 二进制文本处理模块 http://docs ...

  2. Python之re正则模块

    正则表达式可以帮助我们更好的描述复制的文本格式,可以更好地利用它们对文本数据进行检索.替换.提取和修改操作. http://www.cnblogs.com/huxi/archive/2010/07/0 ...

  3. python学习总结笔记(一)

    1.raw_input("请输入:")提示录入信息,读取录入的字符串返回你录入的字符串2.os.environ 获取所有系统的环境变量,返回一个字典.3.str与repr区别str ...

  4. [转]SQL Server 表变量和临时表的区别

    一.表变量 表变量在SQL Server 2000中首次被引入.表变量的具体定义包括列定义,列名,数据类型和约束.而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约 ...

  5. ubuntu-16.04使用MDK3伪造wifi热点和攻击wifi热点至死

    MDK3是? MDK3 是一款无线DOS 攻击测试工具,能够发起Beacon Flood.Authentication DoS.Deauthentication/Disassociation Amok ...

  6. python从2.7升级到3.5 需要主要的问题

    今天鼓足勇气把我们python从2.7升级到3.5.我用的是pycharm开发工具.升级过程遇到一些问题小结下: 1.右击项目: 找到左侧 project interpreter选项,配置项目开发环境 ...

  7. Transform组件以及相关API

    Transform.Translate(Vector3,Space):以自身坐标系或者世界坐标系向某个方向移动物体. Vector3:表示方向和移动的距离. Space:空间.枚举类型,用来确定坐标系 ...

  8. JIT——即时编译的原理

     介绍 java 作为静态语言十分特殊,他需要编译,但并不是在执行之前就编译为本地机器码. 所以,在谈到 java的编译机制的时候,其实应该按时期,分为两个部分.一个是 javac指令 将java源码 ...

  9. 在本地搭建play-with-docker

    安装play-with-docker 官方Github地址 https://github.com/play-with-docker/play-with-docker 本人Github地址 https: ...

  10. 虚拟机Ubuntu无法上网问题解决过程

    查看了网上大部分经验贴,都没有解决问题,只好自己思考琢磨,以下是思考解决过程 1.查看文件配置 2.查看虚拟机网络配置方式 3.查看硬件驱动是否存在 4.配置完文件ifcfg-eth0后重启,无效(虚 ...