一、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 工作区
包含.git文件夹的目录就是工作区,也称为工作目录,主要存放开发的代码
3.2 版本库
.git文件夹里面的就是 版本库,存储了很多配置信息、日志信息和文件版本信息等
3.3 暂存区
.git 文件夹中有很多文件,其中有一个
index
文件就是暂存区, 也可以叫做stage。暂存区 是临时保存修改文件的地方
四、Git工作区中文件的状态
4.1 untracked 未跟踪
未被纳入版本控制
4.2 tracked 已跟踪
被纳入版本控制
- Unmodified: 未修改状态
- Modified: 已修改状态
- Staged: 已暂存状态
五、本地仓库常用命令
- 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*
9.3 提交代码到远程仓库
9.4 拉取远程代码
9.5分支操作
9.6 合并分支
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/245324.html