1.常用指令
1.指令说明
命令 | 说明 |
---|---|
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
初始化一个本地库
git config user.name "用户名"
设置用户名git config user.email "邮箱"
设置用户邮箱
vim hello.txt
新建一个文本文件,并输入内容
git status
查看本地库状态,可以看到 hello.txt为红色
git add hello.txt
提交文本文件到暂存区
git status
查看本地库状态,可以看到 hello.txt变成绿色
git commit -m "测试1" hello.txt
git status
查看状态
3.演示2
修改文件,模拟版本迭代:
vim hello.txt
修改文件
git status
查看状态
git add .
添加到暂存区
git commit -m "测试2" hello.txt
提交到本地库
4.演示3
版本切换
现在,本地库里面有3个版本:
git reset --hard 65b2298
版本回溯到测试2
2.分支操作
1.指令说明
版本控制过程中,同时推进多个任务,可以为每个任务创建单独的分支。并行推进,提高开发效率。
命令 | 说明 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 合并分支 |
2.案例1
创建分支,并切换
git branch hot-fix
创建分支hot-fix
git checkout hot-fix
切换到分支hot-fix
修改本地文件 hello.txt,并提交到本地库
可以看到本地的hello.txt已经被修改
git checkout master
切换回master分支,并对比此时的hello.txt的内容。
3.案例2
合并分支(正常合并)
git merge hot-fix
合并分支hot-fix到master主分支
合并分支(冲突合并)
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,就需要人为决定保留哪一个。
先修改master分支和hot-fix分支的hello.txt的同一个位置(修改之后需要提交到本地库)
切换到master分支,并合并:
合并报错,需要手动合并
vim hello.txt
打开文本文件,可以看到合并冲突位置
手动删除即可
git add .
添加到暂存区、git commit -m "解决master分支合并1"
提交到本地库(此刻不能带有文件名)
注意:合并只会修改当前分支中的文件内容。
- 当前所在的分支,其实是由HEAD指针决定的
- 创建分支的本质就是多创建一个指针
- 切换分支就是切换指针的指向
3.Git团队协作机制
团队内协作
跨团队协作:
4.GitHub
1.创建远程库
账号注册,登录
创建远程库:
2.配置公钥
ssh-keygen -t rsa
配置Git秘钥,生成一个.ssh文件
cat ~/.ssh/id_rsa.pub
查看公钥内容
因为我配置了环境变量,所以会生成在这个路径下
配置GitHub公钥:将id_rsa.pub的内容复制到下面
3.推送文件到远程库
复制GitHub项目仓库的SSH
git remote -v
查看当前所有远程地址别名
git remote add 别名 远程地址(即之前复制的SSH)
创建远程仓库别名(也可以不用别名,直接用ssh来push),别担心别名太长,可以按tab自动补全
推送master分支到远程库
4.拉取代码到本地库
在GitHub上面修改一下文本
git pull gh测试文件提交1 master
从远程仓库拉取文件
5.克隆远程仓库到本地
克隆只需要一个链接就可操作,push和pull需要加入到对应团队才行。
在GitHub上面随便找一个项目
复制ssh
git clone 目标项目ssh
克隆
6.团队协作
团队内协作:
在项目仓库中添加团队成员:
进入到此项目的成员就可以参与项目的修改与迭代
跨团队协作:
找到指定的项目,点击右上角的fork叉取项目
此时可以对该项目进行修改,但只是在自己用户下进行修改
然后,pull request推送回去,交给对方审核
5.IDEA集成Git
1.配置忽略文件
配置了忽略文件的文件,就不会被提交。
通常被忽略的文件与项目的实际功能无关,不参与服务器上部署运行,将这些忽略掉能屏蔽IDE工具之间的差异。
书写忽略文件:
创建忽略规则文件 xxx.ignore
,idea中是.gitignore
.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
3.初始化、添加、提交
初始化本地库:
创建本地库:
默认选中此项目的根目录,直接选择OK
git已经接管了该项目
提交到暂存区:
成功提交的变绿,没提交的是淡黄色
提交到本地库:
提交成功后,绿色会变回原色
4.切换版本
修改已经提交到本地库的代码,其文件会变蓝色(代表被追踪过,但是被修改了,可以直接commit)
再次提交到本地库
点击左下角Git可以查看提交版本
切换版本
5.创建、切换分支
方法1:
右键项目名称
方法2:
切换分支:
6.合并分支
正常合并:
冲突合并:
点击merge,会出现下列三个框(master分支代码、正常无冲突代码、hot-fix分支代码)
×代表不要这段代码,>>代表合并这段代码
一个代表往下合并,×代表不要这段代码
都改好之后,apply就会直接合并且commit了
双击左侧栏的分支,可以看到
6.IDEA集成GitHub
1.token口令登录GitHub
没有GitHub选项,可以下载GitHub插件
token口令登录:
输入密码
自定义权限
复制token
2.推送项目
可以通过IDEA直接创建远程仓库,便捷push
后续修改代码后,可以这样push
自定义ssh链接:
复制
左键单击
粘贴ssh
3.拉取远程库到本地
想要push成功,就必须要保证本地库的版本高于远程库的版本。
此时需要注意,如果远程库和本地库代码不一致,会自动合并,如果合并失败,就需要手动合并。
4.克隆项目
点击Get from VCS