一、Git全局设置
在git命令行中执行下面命令
git config --global user.name "codertl"
git config --global user.emal "codertl@qq.com"
查看配置信息
git config --list
注意: 上面设置的 user.name
和 user.email
并不是 注册github 或者码云 使用的用户名和邮箱,此处可以任意设置
二、获取 Git 仓库
两种方式:
在本地初始化一个Git仓库
从远程仓库克隆
2.1 从本地初始化一个 Git仓库
2.2 从远程仓库克隆
三、工作区、暂存区、版本库概念
3.1 工作区
3.2 版本库
3.3 暂存区
.git 文件夹中有很多文件,其中有一个
index
文件就是暂存区, 也可以叫做stage。暂存区 是临时保存修改文件的地方
四、Git工作区中文件的状态
4.1 untracked 未跟踪
未被纳入版本控制
4.2 tracked 已跟踪
被纳入版本控制
五、本地仓库常用命令
- git status
查看文件状态
- git add
将文件的修改加入暂存区
- git reset
将暂存区的文件取消暂存或者是切换到指定版本
- git commit
将暂存区的文件修改提交到版本库
- git log
查看日志
六、远程仓库常用命令
- git remote
查看远程仓库
- git remote add
添加远程仓库
- git clone
从远程仓库克隆
- git pull
从远程仓库拉取
- git push
推送到远程仓库
6.1 查看远程仓库
6.2 添加远程仓库
git remote add [
]
6.4 从远程仓库拉取
作用: 从远程仓库获取最新版本并合并到本地仓库
git pull [short-name] [brach-name]
注意: 如果当前本地仓库,不是由远程仓库克隆 ,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库中拉取文件会报错 (fatal: refusing to merge unrelated histories)
解决:可以在 git pull 命令后加入参数
--allow-unrelated-histories
6.5 推送至远程
git push [remote-name] [branch-name]
七、分支操作
- git branch
查看分支
- git branch [name]
创建分支
- git checkout [name]
切换分支
- git push [shortName] [name]
推送至远程仓库分支
- git merge [name]
合并分支
7.1 查看分支
git branch
7.2 创建分支
git branch [name]
7.3 切换分支
git checkout [name]
7.4 推送至远程分支
git push [shortName] [name]
7.5 合并分支
git merge [name]
八、标签操作
- git tag
列出已有的标签
- git tag [name]
创建标签
- git push [shortName] [name]
将标签推送至远程仓库
- git checkout -b [branch] [name]
检出标签
8.1 列出已有标签
git tag
8.2 创建标签
git tag [name]
8.3 将标签推送至远程仓库
git push [shortName] [name]
8.4 检出标签
git checkout -b [branch] [name]
九、IDEA使用Git
9.1 IDEA中配置git
9.2 在项目中添加 .gitignore 文件
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, Rubymine, PHPStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
target/
*.iml
.flattened-pom.xml
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*