GIT干货

1.常用指令

1.指令说明

image.png

命令说明
git config --global --list查看当前git的配置信息
git config --global user.name 用户名设置用户名称
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m "日志信息" 文件名提交到本地库
git reflog查看历史记录
git reset --hard 版本号版本切换

git控制版本不是用的副本,而是用的指针指向本地库中不同的版本。

2.演示1

初始化本地仓库,并提交文件到本地仓库:

选择一个文件夹,git init 初始化一个本地库

image.png

git config user.name "用户名"设置用户名
git config user.email "邮箱" 设置用户邮箱

image.png

vim hello.txt 新建一个文本文件,并输入内容

image.png
git status查看本地库状态,可以看到 hello.txt为红色

git add hello.txt 提交文本文件到暂存区

git status查看本地库状态,可以看到 hello.txt变成绿色

image.png

git commit -m "测试1" hello.txt

git status 查看状态

image.png
image.png

3.演示2

修改文件,模拟版本迭代:

vim hello.txt 修改文件

git status 查看状态

image.png
git add . 添加到暂存区

git commit -m "测试2" hello.txt 提交到本地库

image.png
image.png

4.演示3

版本切换

image.png

现在,本地库里面有3个版本:

image.png

git reset --hard 65b2298 版本回溯到测试2

image.png
image.png

2.分支操作

1.指令说明

版本控制过程中,同时推进多个任务,可以为每个任务创建单独的分支。并行推进,提高开发效率。

image.png

命令说明
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名合并分支

2.案例1

创建分支,并切换

git branch hot-fix 创建分支hot-fix

image.png
git checkout hot-fix 切换到分支hot-fix

修改本地文件 hello.txt,并提交到本地库

image.png
可以看到本地的hello.txt已经被修改

image.png
git checkout master 切换回master分支,并对比此时的hello.txt的内容。

3.案例2

合并分支(正常合并)

git merge hot-fix 合并分支hot-fix到master主分支

image.png

合并分支(冲突合并)

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,就需要人为决定保留哪一个。

先修改master分支和hot-fix分支的hello.txt的同一个位置(修改之后需要提交到本地库)

image.png
image.png

切换到master分支,并合并:

image.png
合并报错,需要手动合并

vim hello.txt 打开文本文件,可以看到合并冲突位置

image.png

手动删除即可

image.png

git add . 添加到暂存区、git commit -m "解决master分支合并1" 提交到本地库(此刻不能带有文件名

image.png

注意:合并只会修改当前分支中的文件内容。

  • 当前所在的分支,其实是由HEAD指针决定的
  • 创建分支的本质就是多创建一个指针
  • 切换分支就是切换指针的指向

3.Git团队协作机制

团队内协作

image.png

跨团队协作:

image.png

4.GitHub

1.创建远程库

GitHub

账号注册,登录

创建远程库:

image.png

2.配置公钥

ssh-keygen -t rsa 配置Git秘钥,生成一个.ssh文件

image.png
cat ~/.ssh/id_rsa.pub查看公钥内容

因为我配置了环境变量,所以会生成在这个路径下

image.png

配置GitHub公钥:将id_rsa.pub的内容复制到下面

image.png
image.png

3.推送文件到远程库

复制GitHub项目仓库的SSH

image.png

git remote -v 查看当前所有远程地址别名

git remote add 别名 远程地址(即之前复制的SSH) 创建远程仓库别名(也可以不用别名,直接用ssh来push),别担心别名太长,可以按tab自动补全

image.png

推送master分支到远程库

image.png
image.png

4.拉取代码到本地库

在GitHub上面修改一下文本

image.png

git pull gh测试文件提交1 master 从远程仓库拉取文件

image.png

5.克隆远程仓库到本地

克隆只需要一个链接就可操作,push和pull需要加入到对应团队才行。

在GitHub上面随便找一个项目

image.png
复制ssh

image.png
git clone 目标项目ssh 克隆

image.png
image.png

6.团队协作

团队内协作:

在项目仓库中添加团队成员:

image.png
进入到此项目的成员就可以参与项目的修改与迭代

跨团队协作:
找到指定的项目,点击右上角的fork叉取项目

image.png
image.png
image.png
此时可以对该项目进行修改,但只是在自己用户下进行修改

然后,pull request推送回去,交给对方审核

5.IDEA集成Git

1.配置忽略文件

配置了忽略文件的文件,就不会被提交。

通常被忽略的文件与项目的实际功能无关,不参与服务器上部署运行,将这些忽略掉能屏蔽IDE工具之间的差异。

书写忽略文件:

创建忽略规则文件 xxx.ignore,idea中是.gitignore

image.png

.gitignore通用模板:

######################
# 解决java产生文件
######################
*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

######################
# 解决maven产生的文件
######################

target/
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

######################
# 解决各类编辑器自动产生的文件
######################

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/
/target/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

在.git/config文件中引用忽略配置文件

[core]
	excludesfile = x:/xx/xx/git.ignore

2.IDEA配置Git

image.png

3.初始化、添加、提交

初始化本地库:

创建本地库:

image.png
默认选中此项目的根目录,直接选择OK

image.png
git已经接管了该项目

image.png

提交到暂存区:

image.png

成功提交的变绿,没提交的是淡黄色

image.png

提交到本地库:

image.png
image.png

提交成功后,绿色会变回原色

image.png

4.切换版本

修改已经提交到本地库的代码,其文件会变蓝色(代表被追踪过,但是被修改了,可以直接commit)

image.png

再次提交到本地库

image.png

点击左下角Git可以查看提交版本

image.png
切换版本

image.png

5.创建、切换分支

方法1:
右键项目名称

image.png
image.png

方法2:

image.png

image.png

切换分支:

image.png

6.合并分支

image.png

正常合并:

image.png
image.png
image.png

冲突合并:

image.png

点击merge,会出现下列三个框(master分支代码、正常无冲突代码、hot-fix分支代码)

image.png

×代表不要这段代码,>>代表合并这段代码

image.png

一个代表往下合并,×代表不要这段代码

image.png

都改好之后,apply就会直接合并且commit了

双击左侧栏的分支,可以看到

image.png

6.IDEA集成GitHub

1.token口令登录GitHub

image.png

没有GitHub选项,可以下载GitHub插件

token口令登录:

image.png
image.png

输入密码

自定义权限

image.png
image.png

复制token

image.png
image.png
image.png

2.推送项目

image.png

可以通过IDEA直接创建远程仓库,便捷push

image.png

image.png

后续修改代码后,可以这样push

image.png

自定义ssh链接:
复制

image.png

左键单击

image.png

粘贴ssh

image.png

3.拉取远程库到本地

想要push成功,就必须要保证本地库的版本高于远程库的版本。

此时需要注意,如果远程库和本地库代码不一致,会自动合并,如果合并失败,就需要手动合并。

image.png
image.png
image.png

4.克隆项目

点击Get from VCS

image.png

image.png

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

364.99°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值