GIT的基本常用命令

本地初始化:

要想使用Git对某个项目管理,必须Git  init 进行初始化,作用在当前目录下生成一个隐藏的文件。

git init # 创建新仓库

git config --global user.email "[email protected]" # 设置全局email

git config --global user.name "Anderson" # 设置全局用户名

git config --global user.email "" # 清空配置的email

git config --global user.name ""  # 清空配置的全局名

.git文件夹保存本地仓库git相关的所有信息,如果要恢复成一个普通文件夹:

rm -rf .git  # 删除.git这个隐藏文件即可

从远程 Git 仓库中克隆一个本地仓库:

git clone  # 后面加上Git仓库的地址

工作流:

本地仓库由3个区域组成工作区持有你的源码等实际文件,暂存区像个工作区和版本库之间的buffer,临时存储你的改动,本地版本库记录着你每一次的提交,并维护若干分支。

查看文件工作状态

所有文件都处在两个状态之一:untracked 和 tracked

untracked 的文件未被纳入git的版本控制,

tracked状态又可被细分为以下三个状态:

     ① unmodified:与版本库中的最新文件一致

     ② modified:刚刚修改的

     ③ staged:修改过,并已加入暂存区,等待提交的

工作区:我们写代码的地方,工作的目录就叫做工作区。

暂存区

              ①暂时存储的区域,在git中,代码无法直接从工作区提交到仓库区。

              ②要想把代码从工作区提交到仓库区,必须先提交到暂存区,然后在提交到仓库区。

              ③暂存区存在的目的是,为了避免误操作。

仓库区

             ①将保存在暂存区的内容永久转存到git仓库中,并生成版本号。

             ②生成的版本号,我们就可以根据这个版本号回退到,历史任意的一个版本。

git status  # 查看文件状态

# 红色的表示工作区的文件需要提交
# 绿色的表示暂存区中的文件需要提交
git add index.vue  # 将index.vue单个文件添加到暂存区

git add css  # 将css目录下的所有文件添加到暂存区

git add all 
gti add .   # 这两个都表示,将所有的文件都添加到暂存区

只要修改了工作区的文件,就要把修改的文件,给添加到暂存区

git commit -m "提交的说明文字"  # 将文件从暂存区提交到仓库,这将会生成版本号存档

注意点:如果没有写说明文字,是提交不成功的。

拉取远程代码,对本地代码进行更新

git pull # 拉取代码

推送本地代码到远程仓库

git push # 推送到远程

// 把刚创建的分支推送到远程
git push --set-upstream origin 刚创建的分支名

列出所有本地分支:当前所在的分支前面会有一个 * 号

git branch  # 查看所有的分支

切换分支

git checkout 分支名  # 切换分支

创建远程分支

git push origin 分支名  # 把刚创建的本地分支,创建一个远程分支

创建分支

git checkout -b 分支名 # 创建本地分支并切换分支
// 这条命令把创建本地分支和切换到该分支的功能结合起来了

git branch 分支名 # 基于当前分支创建一个本地分支
// 这条命令是创建一个新分支出来,剩下的操作还要切换到新分支、再把新分支与远程分支关联。

把本地分支与远程分支进行关联

git branch –set-upstream 本地分支名 origin/远程分支名 
或者
git branch –set-upstream-to=origin/远程分支名

// 示例:git branch –set-upstream-to=origin/test  # 把本地test分支与远程进行关联

删除分支

git branch -d 分支名称  # 删除分支

// 不能在当前分支删除当前分支,需要切换到其他分支才能删除。
// master 分支一般是主分支,不建议删除。

本地重命名分支

git branch -m 原始名称 新名称  # 本地分支重命名
 
//示例: 修改 test 为 newTest
// git branch -m test  newTest

远程分支重名名

git branch -m 旧分支名称  新分支名称  # 先重名名本地分支

git push --delete origin 旧分支名称  # 删除远程分支

git push origin 新分支名称  # 把本地分支推到远程,这时候系统会自动关联分支

合并分支

git merge 分支名 # 合并分支
// 在当前分支合并其他分支

如果合并冲突时,需要手动解决冲突或者回退代码;解决完冲突之后,需要再次git add 一下。

查看仓库的提交历史记录

git log  # 查看历史记录,这个看不了已回退的版本记录

git reflog  # 查看所有的版本信息,包括已回退的版本

回退版本,将代码回退到历史的某一个版本,需要历史的版本号

git reset --hard 版本号  # 将代码回退到历史的某一个版本,需要版本号

回退暂存区的代码, git add 后的

git reset HEAD # 后面什么都不加,就是回退全部的

git reset HEAD 文件名  # 回退单个文件名

回退仓库区的代码,git commit 后的

git reset --soft HEAD^ # 回退commit的提交,仅仅是撤回commit操作,但写的代码仍然保留
// HEAD^意思是上一个版本,
// 也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2。


git reset --mixed HEAD^ 
// 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作

git reset --soft HEAD^
// 不删除工作空间改动代码,撤销commit,不撤销git add .

git reset --hard HEAD^ 
//  删除工作空间改动代码,撤销commit,撤销git add .

修改commit 注释

git commit -m 新注释 --amend  
// git commit 加上 --amend 参数,并用 -m 指明新的注释,执行后便会覆盖掉老的注释

Git review回退

git checkout 分支名  # 切换到需要回退的分支
git log  # 查看提交记录
git reset --hard # 代码回退
git reset --hard id # id为commit提交的记录
git review  # 重新提交修改

Git rebase 回退

git reflog  # 先查看本地提交操作编号
// 找到提交前的项目编号,例如4c173eb HEAD@{3}: commit: scan ,
// 执行:git reset --hard 4c173eb

Git cherry-pick回退

git cherry-pick --abort

猜你喜欢

转载自blog.csdn.net/weixin_48674314/article/details/129141635