Git命令操作

86 阅读6分钟

Git命令

git初始化仓库提交代码

git init                           //初始化仓库
git add .(或者文件name,*表示所有)                //添加文件到本地 
git commit -m “first commit”      //添加文件描述信息
git remote add origin  远程仓库地址 //链接远程仓库, origin是你本地的仓库名称
git pull origin master           // 把本地仓库的变化连接到远程仓库master分支
git push  origin master        //把本地仓库的文件推送到远程仓库master分支

提交流程

仓库都初始化完毕后,只需按照如下的流程提交代码即可

如果推送过程中出现提交历史不一致,可在push命令后加-f参数,会进行覆盖提交(不推荐),

推荐的方法是git pull <本地仓库名称> [需要拉取的远程分支名称] ,例如拉取本地仓库origin的最新的更新至本地:

git pull origin master # master是远程的分支
# 后续再重新按下面的流程执行即可,add->commit->push
//1.添加文件
git add . 
//2.提交文件至本地
git commit -m "提交描述信息"
//3.推送,origin是远程仓库名,第一个master是本地分支,第二个master是你要推送到的远程分支名称,如果分支相同,可简写为master
git push origin master:master

GIT指令详解

查看修改的状态

作用:查看修改的状态(暂存区,本地提交区)

命令形式:

git status

添加工作区到暂存区

作用:提交工作区一个或多个文件的修改到暂存区

命令形式: .是所有文件的匹配通识符,也可以自己指定要添加的文件

git add . 
#指定单个文件名称
git add text.txt

提交暂存区到本地仓库

作用:提交暂存区内容到本地仓库的当前分支

良好的提交描述是十分必要的:

如何规范你的Git commit? - 知乎 (zhihu.com)

命令形式:

git commit -m "提交描述"
# 规范提交样例
git commit -m "[feat]:新增用户登录功能"

查看提交日志log

作用:查看提交记录

命令形式:

git log [option]
  • options
  • --all 显示所有分支
  • --pretty=oneline 将提交信息显示为一行
  • --abbrev-commit 使得输出的commit
  • --graph 以图的形式显示

版本回退

作用:版本切换,会到原先的提交版本

命令形式:

git reset --hard commitID
# 当本地的修改不想要时,通过如下命令回退
git reset --hard HEAD^
  • commitID可以使用git log指令查看

分支

查看本地分支

git branch

创建本地分支

git branch 分支名

切换分支

git checkout 分支名
git cheackout -b 分支名 //如果不存在分支,创建分支并切换

切换远程分支

查看远程分支:

git branch -r

切换指定分支并与远程分支相关联,如果指定分支不存在,会自动创建

git checkout -b dev origin/dev

合并分支

一个分支上的提交可以合并到另一个分支上

git merge [options] 分支名
  • options:

    • --allow-unrelated-histories #进行允许合并

删除分支

不能删除当前分支,只能删除当前分支

git branch -d b1 删除分支时,需要做各种检查
git branch -D b1 强制删除

远程仓库

添加远程仓库

此操作是先初始化本地库,然后再与已创建的远程库进行对接

命令:

git remote add <远端名称> <仓库路径>

移除远程仓库

git remote rm <本地仓库名称>

查看添加的远程仓库的名称

命令:

git remote //显示的是你本地仓库的名称

推送到远程仓库

命令:git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]

如果远程分支名和本地分支名称相同,则可以只写本地分支

git push origin master:master
git push origin master
  • -f 表示强制覆盖
  • --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
  • git push --set-upstream origin master
  • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。

git push 将master分支推送到已关联的远端分支。

本地分支与远程分支的关联关系

git branch -vv

远程仓库克隆

如果已经有一个远端仓库,我们可以直接clone到本地。 命令:

git clone <仓库路径> [本地目录]

本地目录可以省略,会自动生成一个目录

从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

抓取命令:

git fetch [remote name] [branch name]

抓取指令就是将仓库里的更新都抓取到本地,不会进行合并

如果不指定远端名称和分支名,则抓取所有分支。

拉取命令:

git pull [remote name] [branch name] [local name] [options] # 拉取时local name不能为当前分支,如果是,则需要切换分支
git pull [remote name] [branch name] # 不需要切换分支,直接与当前分支进行合并

拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge 如果不指定远端名称和分支名,则抓取所有并更新当前分支。

冲突解决

git pull冲突

在拉取远程仓库最新的版本时,该命令会尝试进行自动合并,如果本地的提交历史与远程仓库的提交历史不一样,则需要手动进行分支合并,手动合并分支成功后, 再次进行添加add,提交commit,并进行推送push即可