Git基础使用

Git-基础使用介绍

img

一、什么是Git

Git 是一个开源的分布式版本控制系统 ,说白了就是Git的各个仓库区域保存了我们的数据快照,方便我们后悔时回退到之前的版本。使用GIt指令可以将数据保存到暂存区、本地仓库和远程仓库,当在工作区想要回退时,使用指令即可将想要的版本覆盖到工作区。

二、初始化

初始化

$ git init                         # 将当前目录初始化为git仓库,生成.git文件。
$ git remote add [name] [url]      # 添加远程仓库,name:本地仓库名,url:远程仓库url
$ git config --global user.name 'longan'
$ git config --global user.email test@runoob.com

分支

$ git branch                  # 列出所有本地分支
$ git branch -a               # 列出所有本地分支和远程分支
$ git branch dev              # 创建dev分支,-b创建同时切换分支 
$ git branch -d <分支名>       # 删除分支 -D强制
# 修改分支名1
$ git checkout -b new old     # 通过复制old分支新建new分支
$ git branch -d old           # 删除old分支
# 修改分支名2
$ git branch -m new-name      # 为当前分支改名
$ git branch -m dev new-name  # 为指定分支改名

$ git branch --set-upstream-to origin origin/master # 本地远程分支关联

三、版本控制

工作区↔暂存区(index)

# 工作区 --> 暂存区
git add [file1] [file2] ...    # 添加一个或多个文件到暂存区。
git add [dir]                  # 添加指定目录到暂存区,包括子目录。
git add .                      # 添加所有文件到暂存区。
# 暂存区 --> 工作区
# 如果工作区已混乱,想将暂存区的数据同步到工作区。
$ git checkout -- filename      # 放弃修改,即将暂存区数据同步到工作区

$ git rm --cached <file>        # 将文件从暂存区移除(不参与版本控制),不改变工作区
$ git rm <file> [-f] [–r<dir>]  # 从暂存区和工作区中删除,-f强制删除,-r递归删除 
# 仓库中存在的怎么弄到工作区
$ git restore                   # 撤销工作区的修改,即将暂存区的数据拉到工作区(回到上一次add的状态)

暂存区(index)↔本地仓库

# 暂存区 --> 本地仓库
$ git commit -m [message]              # 将暂存所有区内容添提交到本地仓库中
$ git commit [file..] -m [message]     # 提交指定文件
$ git commit -a                        # -a 参数设置修改文件后不需要手动执行git add命令,直接提交
$ git commit -am  [message]            # 快速提交

# 本地仓库 --> 暂存区、工作区
# 工作区和暂存区已混乱,从本地仓库恢复,同时改变工作区和暂存区
$ git checkout HEAD -- <filename>

# 如果工作区、暂存区和本地仓库最新的版本都存在错误,想回到上一个正常版本。
#(将本地仓库的HEAD指针指向上一个版本)
$ git reset [--soft | --mixed | --hard] [HEAD] 
# --soft   仅仅移动当前Head指针,不会改变工作区和暂存区的内容
# --mixed  是reset的默认参数,移动head指针,改变暂存区内容,但不会改变工作区
# --hard   当前head指针、工作区和暂存区内容全部改变

本地仓库↔远程仓库

# 本地仓库 --> 远程仓库
$ git push <远程主机名> <远程分支名>:<本地分支名>
$ git push <远程主机名> <远程分支名>

# 远程仓库 --> 本地仓库
$ git pull origin              # git fetch + git merge
$ git fetch [alias]            # 从远程下载新分支和数据到本地仓库
$ git merge [alias]/[branch]   # 将本地仓库的新分支和数据更新到工作区
$ git clone [url]              # 拷贝一份远程仓库,也就是下载一个项目。

git checkout

#(1)用来切换分支
$ git checkout         #切换到上一个使用的分支
$ git checkout dev     #换到dev分支

#(2)切换到指定快照(commit)
$ git checkout <commitID>

#(3)将工作区指定的文件恢复到上次commit的状态。
$ git checkout -- <filename>	    #暂存区覆盖工作区
$ git checkout HEAD~ -- <filename>	#将某个commit的文件覆盖暂存区和工作区
$ git checkout -p					#-p参数表示进入交互模式,只恢复部分变化

#(4)切换到某个tag
$ git checkout tags/1.1.4
# 或者
$ git checkout 1.1.4

# -b用于生成一个新的分支。
$ git checkout -b new

git reset

# git reset命令用于将当前分支指向另一个位置。
# 1,2,3,4,5
# HEAD:当前指针指向位置--5
# HEAD^:当前指针前一个位置--4
# HEAD~2:当前指针前两个位置--3

# 将当期分支的指针倒退三个 commit,
$ git reset --soft  HEAD~3	# 倒退指针的同时,不改变工作区和缓存区
$ git reset --mixed HEAD~3 	# 默认,移动head指针,改变暂存区内容,但不会改变工作区
$ git reset --hard  HEAD~3	# 倒退指针的同时,改变工作区和暂存区

#如果不指定回滚的位置,那么等同于撤销修改。
$ git reset [-- <filename>]	 # Undo add 撤销上一次向暂存区添加的所有文件,工作区不变
$ git reset --soft			 # 无任何效果
$ git reset --soft HEAD^     # 撤回commit,不重置工作区和缓存区,回到HEAD前一个commit
$ git reset --hard			 # 回到上一次提交的状态,同时撤销暂存区和工作区的修改
$ git reset --hard HEAD~3	 # 撤回commit,重置工作区和缓存区

#参数
$ git reset --hard  # 等同于git reset --hard HEAD。
# -p表示键入交互模式,指定暂存区的哪些部分需要撤销。

# 从暂存区移除指定文件,但不改变工作区中的该文件
$ git reset -- <file>
$ git rm --cached <file>

四、其他

$ git log                      # 查看历史提交记录。
$ git blame <file>             # 以列表形式查看指定文件的历史修改记录。
$ git diff                     # 查看工作区和暂存区的区别
$ git branch -v                # 查看本地与远程分支的关联情况
$ git remote -v                # 显示所有远程仓库
$ git remote show [remote]     # 显示某个远程仓库的信息
$ git remote rename old new    # 修改仓库名
$ git remote rm name           # 删除远程仓库
$ git mv [file] [newfile]      # 移动或重命名一个文件、目录或软连接。
$ git mv -f [file] [newfile]   # 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数。
$ ssh-keygen -t rsa -C "youremail@example.com"  为ssh生成rsa秘钥
idea中安装git以后,代码文件颜色含义:mipsle
红色,未加入版本控制       --未add git add 加入版本控制变绿色
绿色,已经加入控制暂未提交  --已add未commit,git commit 提交到仓库变白色,修改文件1,再commit,文件1变蓝色
白色,加入,已提交,无改动  --编辑白色文件变蓝色
蓝色,加入,已提交,有改动  
灰色:版本控制已忽略文件。
posted @ 2023-10-10 22:06  longan55  阅读(24)  评论(0)    收藏  举报