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即可