Git(一)【基本使用,集成IDEA,GitHub】
一.本地库操作
①基本操作
1.初始化本地库
git init
2.设置用户签名|用户名|邮箱
git config --global user.name 用户名
git config --global user.email 邮箱
3.查看本地库状态
git status
4.添加暂存区
git add 文件名
5.提交到本地库
git commit -m "日志信息" 文件名
6.查看文件modify详情
git diff 文件名
②历史版本以及回退
1.查看历史版本
git reflog #查看历史记录
git log #查看历史记录,完整版本号
git log --pretty=oneline #显示到一行
2.版本回退
git reset --hard 版本号 #版本的回退
③分支操作
创建分支的本质就是多创建一个指针

master、hotfix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。
所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果执行hotfix,那么我们现在就在hotfix分支上。
所以切换分支的本质就是移动HEAD指针。
1.创建分支
①可以现在远程库手动建一个自己的分支wuhao36
②当我们从远程库clone下默认本地只有master分支,
③查看所有的本地分支和远程分支 git branch -a, 在本地创建远程分支的git checkout -b wuhao36 remotes/origin/wuhao36
git branch 分支名
#创建并切换分支
git checkout -b wuhao36 remotes/origin/wuhao36
2.查看分支
#查看本地分支
git branch
#查看本地分支(及最近一次版本信息)
git branch -v
#查看本地和远程分支(推荐使用这个)
git branch -a
3.切换分支
git checkout 分支名
4.合并分支
把指定的分支合并到当前分支上
git merge 分支名
5.推送分支
推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支
git push origin 分支名
6.本地分支和远程分支关联
git branch --set-upstream 分支名 origin/远程分支名
④合并

合并分支时一定是涉及到两个分支。这两个分支一个是“当前所在分支”,一个是“目标分支”。
命令写法:git merge 目标分支
所以分支合并命令的本质就是把“目标分支”合并到“当前分支”。
例如:把hotfix合并到master:git merge hotfix,需要确保当前所在的分支是master
例如:把master合并到hotfix:git merge master,需要确保当前所在的分支是hotfix
⑤冲突
Git使用“<<<<<<<、=========、>>>>>>>>>>”符号帮我们标记出来,现在产生冲突的内容。
<<<<<<< HEAD
Hello Git!I am very happy! &&&&&&&&&&&&
Hello Git!I am very happy!
=======
表示HEAD指针指向的位置在冲突中的内容
Hello Git!I am very happy!
Hello Git!I am very happy! ************
>>>>>>> hotfix
表示hotfix指针指向的位置在冲突中的内容
1.冲突原因
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
2.冲突的解决
①编辑有冲突的文件,删除特殊符号,决定要使用的内容
冲突报错

处理冲突的部分,查看状态

②添加到暂存区,执行提交(注意:使用git commit命令时不能带文件名)
git add 文件名 、git commit

二.远程仓库操作(github)
0.邀请成员加入团队,邀请成员
个人图像-->setting-->Repositories-->选库-->Setting-->Manage access-->Invite collaborator
然后等待别人接收邀请就可以加入;如果别人没有收到提醒,点击Manage access-->被邀请人-->Pending Invite 将接收邀请链接发送给别人。

1.创建远程库 | 别名
git remote add 别名 远程地址
2.查看、删除远程地址
git remote -v 查看当前所有远程地址
git remote remove 远程地址别名 删除远程地址
3.将本地分支推送到远程库
git push 远程仓库别名 分支名
例如:git push origin master
第一次push,远程仓库没有该分支相当于新建一个分支
4.克隆远程库
git clone 远程地址 分支
三个作用:①初始化本地库 ②远程地址起别名默认origin ③复制master分支中的文件
5.推送到远程库
先要加入团队,不然push失败
git push 远程库别名 远程分支名
6.拉取分支到本地
git pull 远程库别名 远程分支名
7.跨团队协作
fork别人的项目到远程个人库 --> clone远程个人库到本地库 --> 本地库修改操作 -->push 到远程个人库 -->远程个人库执行pull request --> 等待别人审核同意然后merge。
8.ssh登录
进入当前用户的家目录
$ cd ~/.ssh
$ rm -rvf .ssh
运行命令生成.ssh密钥目录
$ ssh-keygen -t rsa -C atguigu2018ybuq@aliyun.com
[注意:这里-C这个参数是大写的C]
进入.ssh目录查看文件列表
$ cd .ssh
$ ls -lF
查看id_rsa.pub文件内容
$ cat id_rsa.pub
复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys
New SSH Key
输入复制的密钥信息
回到Git bash创建远程地址别名
git remote add origin_ssh git@github.com:haowu2018ybuq/huashan.git
推送文件进行测试
三.IDEA中使用Git
①配置Git忽略文件
1.哪些文件需要忽略?
Eclipse特定文件、IDEA特定文件、Maven的target目录
2.为什么要忽略它们?
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异
3.如何忽略?
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下

1)创建idea_project.ignore,名称后缀随便取
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
2) 在.gitconfig文件中引用忽略规则文件
excludesfile = C:/Users/HaoWu/idea_project.ignore
[user]
naem = Haowu
name = Haowu
email = 984763176@qq.com
[core]
excludesfile = C:/Users/HaoWu/idea_project.ignore
②在IDEA中使用Git
1.定位git.exe
选择本地git的D:\SoftWare\git\Git\bin\git.exe

2.初始化本地库
选择指定项目,创建本地库


创建本地库后文件名变色

3.添加暂存区
选中项目,然后右键,点击add,添加暂存区


4.提交到本地库



5.创建分支
项目名右键,创建分支

可以看当前所处的分支,也可以在这里创建,创建新的分支后会自己切换到新的分支上

6.切换分支
窗口由下角,选择分支,然后checkout
7.合并分支
选择一个分支merge到当前分支。

8.解决冲突
1)在和远程库交互过程中也有可能发生冲突,因为解决办法一样,所以这里按照分支操作过程中产生的冲突来演示,仍然是同一个文件在同一个位置有不同内容
master分支

2)切换到hotfix分支

3)然后将hotfix 分支合并到master上

4)冲突的体现

5)这里可以直接点“Accept Yours”或者“Accept Theirs”来解决冲突。这代表完全使用我们的内容或完全使用他们的内容。如果我们想要详细修改冲突内容则点击Close。此时IDEA会提示Resolve


6)根据需要调整完成后点击“Save changes and finish merging”,然后提交到本地库就好啦!

四.IDEA连接GitHub
1.保存GitHub账号
Setting的GitHub添加账号,可能网速不好。


2.分享工程到GitHub


分享成功

GitHub上查看

3.Clone

填写远程仓库地址,然后点击clone。

新窗口打开新的项目,重新设置Maven配置。
4.Push
在clone下来的工程基础上开发,修改。然后commit到本地库。
右键项目

执行push操作

GitHub远程仓库验证

5.Pull
右键项目


Git(一)【基本使用,集成IDEA,GitHub】的更多相关文章
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Visual Studio Team Services持续集成到Github仓库
Devops如何用VSTS持续集成到Github仓库! 工欲善其事,必先利其器.在开始正式的教程之前我们先来聊聊准备工作. 管理工具会VSTS. 代码管理会用GITHUB. 服务器会用Azure. ...
- git上传项目代码到github
参考: git学习——上传项目代码到github github上传时出现error: src refspec master does not match any解决办法 git 上传本地文件到gith ...
- git 上传本地文件到github
git 上传本地文件到github 1 git config --global user.name "Your Real Name" 2 git config --global u ...
- Jenkins+maven+git+sonar 系统持续集成&代码单測管理
Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...
- git将本地项目添加到github远程仓库
1.首先准备好你的github 账号密码,注册就不说了.. 2.由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以要在本地生成一个私钥和一个密钥 命令: $ ssh-keygen ...
- 使用Git上传项目代码到github
github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 注册账户以及创建仓库 要想使用gi ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目
分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...
- 使用git将项目上传到github
使用git将项目上传到github(最简单方法) 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下 ...
随机推荐
- binary-tree-postorder-traversal leetcode C++
Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...
- Java线程的三种实现方法
Java多线程详解 线程简介 多任务,多线程 多任务情况中,虽然可以完成,但是实际上,多任务的完成是由一个一个小任务的完成来实现的,也就是说在执行多任务时,不是同时执行多个任务,而是一个时间段内只完成 ...
- Canvas 放烟花合集 -- 用粉丝头像做成烟花绽放🧨
"我对着烟花许愿,希望你永远在我身边" "凑不够满天星辰那就去看看烟花吧,人间烟火气,最抚凡人心" 小tips:喜欢的可以关注博主私信代码噢~ 也可以看看前面两 ...
- Electron结合React,在渲染进程中使用 node 模块
Electron结合React,在渲染进程中使用 node 模块 问题 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron.当在Reac ...
- LiteFlow 2.6.4版本发行注记,里程碑版本!
一 这个版本做的很折腾.期间几个issue推翻重做了好几次. 但我最终还是带来了LiteFlow 2.6.4这个重要版本. 虽然版本是小版本号升级,但是带来的更新可一点也不少.并完全向下兼容. 如果你 ...
- c++学习笔记(五)
数组作为函数参数 定义 数组可以作为函数的参数使用,进行数据传送. 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用:另一种是把数组名作为函数的形参和实参使用. 1.数组元素作为函 ...
- jQuery css()选择器使用说明
css选择器只是jquery中的一个功能罢了,下面我来给各位朋友详细介绍jQuery css()选择器使用方法与说明详解,有需要了解学习的同学可参考. CSS操作有一个重要的方法:CSS() CSS( ...
- ubuntu 首次登陆设置root密码
用过ubuntu的人都知道,ubuntu默认root密码是随机的,即每次开机都有一个新的root密码.我们可以在终端输入命令sudo passwd,然后输入当前用户的密码 给root用户设置密码 ...
- [loj3527]地牢游戏
当英雄能力值$\ge 10^{7}$时,即能战胜所有敌人,简单预处理即可 若英雄能力值在$[2^{k},2^{k+1})$中,对敌人分类讨论: 1.若$s_{i}\le 2^{k}$,其必然会战胜这些 ...
- [bzoj1432]Function
对于这n个函数,构成了$n(n-1)/2$个交点,对交点离散后,相邻两个交点间函数的编号构成了一个排列,而每一个排列第i个数所构成的段数就是第i层的段数不妨设初始在-oo处这个排列是1,2,--,n, ...