2022/8/15

git参考学习文档 (opens new window)

# 1创建版本库

git init

git add test.txt  /  git add . //添加到暂存区

git commit -m "first commit" // 暂存区内容提交到当前分支

# 2 版本回退

git log / git log --pretty=oneline

git reset --hard HEAD^//回退到上一个版本

git reset --hard id //id是git log 里面对应版本的id

你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

git reflog //记录每一条命令

# 3 撤销修改

git status //查看状态

git checkout -- readme.txt

# 4 删除文件

git rm text.txt

误删了又可以用 git checkout -- text.txt

# 5 远程分支

git remote -v //查看当前远程库信息

git remote rm origin //移除

要关联一个远程库 git remote add origin git@server-name:path/repo-name.git

# 6 分支管理

git checkout -b dev //创建dev分支,并切换到dev,可以分解为:git branch dev + git switch dev

git branch //列出所有分支

git add . 

git commit -m "提交内容到dev分支"

git checkout master //查看master 并没有刚刚commit 的内容,那是因为提交的内容在dev上

git merge dev //合并指定分支到当前分支

git branch -d dev //删除分支

git switch -c dev //分支切换 git switch master

//修改远程仓库地址
git remote set-url origin https://gitee.com/lichengcan0228/mall4cloud.git

# 7 .gitignore常用

#======================================================================================================================
#=========================================          gitignore的基础用法         =========================================
#======================================================================================================================
#  一.基础语法
#    .gitignore配置文件的一些通用技巧 [参考:https://git-scm.com/docs/gitignore]
#     1.空白行不匹配任何文件,所以可以作为可读性的分隔符,同时两端的空格将会被忽略.
#     2.使用[#]开头,将会注释掉整行,使其不进行匹配操作,如果需要匹配#开头,可以使用转义字符[\].
#     3.1匹配模式以[/]结尾,表示想要匹配一个目录及其子文件.(比如[foo/]会匹配foo目录及其下面的路径.)
#     3.2匹配模式不包含[/],将会全局匹配该文件.
#     4.通配符
#       [*]:  匹配除[/]以外的任何内容,也就意味着[*]不能跨目录.
#       [?]:  匹配除[/]和[[]以及[]]以外的任何一个字符.
#       [**]: 匹配所有的内容,或者说匹配任意目录下的内容.
#         示例:
#           1.[**/foo/bar]  将会匹配所有直接在foo目录下的bar,无论foo处在何处.
#           2.[foo/**]则表示匹配foo目录下的所有文件和目录.
#           3.[a/**/b]则可以匹配a/b, a/c/b, a/c/d/b,即此处的[**]可以表示0个或多个.
#           !!! 需要注意的是,除上面示例的用法外,剩余的[**]都是无效的..
#     5.可以通过前缀[!]来表示不忽略某些文件,比如可以通过[!a]来确保文件a不会被忽略,即时前面已经声明了忽略其父目录,该模式优先级高于普通忽略模式.
#  二.常用命令
#    1.git -rm  [https://git-scm.com/docs/git-rm]
#      删除文件索引,或者同时删除文件索引和物理文件.可以使用通配符.
#    2.git-check-ignore [https://git-scm.com/docs/git-check-ignore]
#      调试.gitignore文件
#  三.注意事项
#    1.如果文件已经被git管理,那么后续添加的忽略模式将不会生效,具体解决方法,参考<<二.常用命令>>.

#=======================================================================================================================
#==============================               java忽略文件                           =====================================
#=====================         https://github.com/github/gitignore/blob/master/Java.gitignore         ==================
#=======================================================================================================================
# 编译后的class文件,忽略所有以[.class]结尾的文件
*.class

# 日志文件,忽略所有以[.log]结尾的文件.
*.log

# BlueJ 文件,忽略所有以[.ctxt]结尾的文件.
*.ctxt

# Mobile Tools for Java (J2ME),忽略[.mtj.tmp/]目录及其子文件.
.mtj.tmp/

# 打包文件,忽略所有以[.jar]或[.war]或[.nar]或[.ear]或[.zip]或[.tar.gz]或[rar]结尾的文件.
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# 虚拟机崩溃日志,忽略所有以[hs_err_pid]开头的文件.[see http://www.java.com/en/download/help/error_hotspot.xml]
hs_err_pid*
#=======================================================================================================================
#==============================               maven忽略文件                           ===================================
#=====================         https://github.com/github/gitignore/blob/master/Maven.gitignore        ==================
#=======================================================================================================================
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
!/.mvn/wrapper/maven-wrapper.jar
#=======================================================================================================================
#==============================               IDE环境忽略文件                           ==================================
#=====================         https://github.com/github/gitignore/blob/master/Maven.gitignore        ==================
#=======================================================================================================================
#----------------IDEA-------------
.idea/*
.idea/compiler.xml
.idea/encodings.xml
.idea/modules.xml
*.iml
#=======================================================================================================================
#==============================               other环境忽略文件                           ================================
#=====================         https://github.com/github/gitignore/blob/master/Maven.gitignore        ==================
#=======================================================================================================================
*.sw?
.#*
*#
*~
.classpath
.project
.settings/
bin
build
target
dependency-reduced-pom.xml
*.sublime-*
/scratch
.gradle
Guardfile
README.html
*.iml
.idea