常用命令
git init
# 添加远程仓库
git remote add origin https://gitee.com/zhengqianya/springcloud-heima.git
# 更新最新分支情况
git remote update
# 查看当前分支
git branch
# 将远程分支和本地的master分支关联
git branch --set-upstream-to=origin/mq-advanced-demo master
# 强制合并远程分支和本地分支的差异
git pull --allow-unrelated-histories
# 查看关联情况
git branch -vv
基本命令
### 初始化仓库
git init
### 添加文件到本地仓库
git add .(文件name) || *
### 添加一个或多个文件到暂存区:
git add [file1] [file2] ...
### 添加指定目录到暂存区,包括子目录:
git add [dir]
### 添加当前目录下的所有文件到暂存区:
git add .
### 添加文件描述信息
git commit -m "xxxxxx"
### 把本地仓库的变化连接到远程仓库主分支【重点步骤】
git pull origin master
### 将远程服务器origin拉去合并到本地master分支,并合并不相干文件
git pull origin master -–allow-unrelated-histories
### git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master:master
### 如果本地分支名和远程分支名一样的情况下,可以省略:<远程分支名>。如果远程主机中不存在该分支,那么会被创建。我们就可以使用命令:
### 把本地仓库的文件推送到远程仓库
git push -u origin master
### 如果本地分支已经跟远程分支建立了追踪关系,那么可以省略<远程主机名>和:<远程分支名>
git push origin
### 在之前的命令中,我们都会添加<远程主机名>来指定要推送到哪一台主机上,但如果连主机名都不想写,可以吗?当然可以,我们只需要保证本地仓库只跟一台远程主机有关联即可。其实我们在正常的开发中,远程主机确实只有一个,那就是我们克隆的远程项目的主机。如果不使用特殊的操作,根本用不着跟其他主机建立联系。
git push
### 输入可以看到自己的邮箱和用户名
git config --list
### 使用这行命令修改你的邮箱
git config --global --replace-all user.email “你的邮箱”
### 使用这行命令修改你的用户名
git config --global --replace-all user.name “你的用户名”
### 使用branch -a可查看本地及远程所有分支
git branch -a
### 远程仓库地址url 链接远程仓库,创建主分支
git remote add origin url
### 如果远程新建了分支,本地查看却没有,可使用git remote update进行远程的更新
git remote update
### 查看本地分支及追踪的分支,可能本地分支并没有追踪远程分支
git branch -vv
### 建立 dev 分支
git branch dev
### 删除本地分支
git branch -d dev
### 强制删除本地分支
git branch -D dev
### 查看当前分支
git branch
### 我们可以通过--graph来观看分支
git log --oneline --graph
### 切换到dev分支
git checkout dev
### 使用 checkout -b + 分支名, 就能直接创建和切换到新建的分支
git checkout -b dev
### "-am": add 所有改变 并直接 commit
git commit -am "change 3 in dev"
### 如果远程新建了分支,本地查看却没有,可使用git remote update进行远程的更新
git remote update
### 本地分支和远程分支建立追踪关系的三种方式
### 使用此种方式可以在本地分支已经追踪了某个远程分支的情况下,修改追踪的远程分支
git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>
git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名> --allow-unrelated-histories
### --allow-unrelated-histories
### 本地合并时遇到refusing to merge unrelated histories的错误https://www.cnblogs.com/jinbang/p/8920252.html
### 如果git merge合并的时候出现refusing to merge unrelated histories的错误,原因是两个仓库不同而导致的,需要在后面加上--allow-unrelated-histories进行允许合并,即可解决问题
### 加上-u参数,这样push时,本地指定分支就和远程主机的同名分支建立追踪关系。
git push -u <远程主机名> <本地分支名>
### 新分支指针指向 <远程主机名>/<远程分支名> 所指的位置。
git checkout -b <本地分支名> <远程主机名>/<远程分支名>
### 查看远程仓库fetch和push地址
git remote -v
### 最后查看本地分支和远程分支关联情况
git branch -vv
### 注意:在远程创建了一个新的分支dev,但是我在本地使用命令git branch -r查看远程的所有分支,没有这个新分支,我们需要去更新一下远程仓库在本地仓库的缓存,使用git fetch origin或者git remote update origin --prune命令更新,然后再查看git branch -r,就能看到更新啦
### 仓库中增、删、查、改 提交文件操作的流程(工作区 —> 暂存区 —> git仓库)
#查看文件工作区修改的状态
git status -s
#把工作区的文件放到暂存区
git add . //将本目录下全部文件放入暂存区
git add 文件名 //放单个文件或文件夹
git add -A //一次性的把仓库中的文件进行上传到暂存区
### 暂存区的文件添加到git仓库
git commit -m 消息
#查看commit日志
git log
### git log详细命令:git log 命令详解RollingPin的博客-CSDN博客git log命令详解
### 提交简化操作
git commit -am '修改hello文件'
### 等价于git add hello && git commit -m '修改hello文件'
### 注意:使用的前提是hello文件曾经被add过,也就是处于tranced状态
### 撤销add操作
### 可以直接使用命令
git reset HEAD
### 这个是整体回到上次一次操作
### 绿字变红字(撤销add)
### 如果是某个文件回滚到上一次操作:
git reset HEAD 文件名
### 红字变无 (撤销没add修改)
git checkout -- 文件
### 由于一个本地仓库是可以关联多个远程仓库的,因此,
### 可以设置多个「别名」分别指向不同的远程仓库
### (比如一个 GitHub、一个 GitLab、一个 Gitee),然后通过别名的方式方便、
### 快速地拉取某个远程仓库的代码或者将代码推送至某个远程仓库。
### 如果直接执行git push 可能会出现
### fatal the current branch master has no upstream branch的错误,
### 这时需要执行git push -u origin master或 git push --set-upstream origin master,
### 之后就可以直接用git push或git pull指令了