99 lines
3.1 KiB
Markdown
99 lines
3.1 KiB
Markdown
# 常用git命令
|
||
|
||
> git官方中文文档 <https://www.git-scm.com/book/zh/v2> 中包含更多的信息
|
||
|
||
---
|
||
|
||
## 从远程克隆一个仓库
|
||
|
||
```bash
|
||
# 通过SSH连接克隆一个仓库(可能需要事先配置SSH公钥)
|
||
# 执行成功后会在当前路径创建一个名为fsdoc的目录,进入目录后即可以用git命令操作仓库了
|
||
git clone git@gitee.com:wandoubaba517/fsdoc.git
|
||
# 通过HTTP连接克隆一个仓库(有时可能会需要用户名和密码)
|
||
# 执行成功后会在当前路径创建一个名为callapp_mrcp的目录
|
||
git clone https://gitee.com/polaris-arvin_admin/callapp_mrcp.git
|
||
```
|
||
|
||
> 除了`git clone`命令外,其他git命令都需要在仓库目录下进行操作
|
||
|
||
## 分支操作
|
||
|
||
> 别忘了在仓库目录下操作
|
||
|
||
```bash
|
||
# 查看所有分支(本地和远程)
|
||
git branch -a
|
||
# 切换分支
|
||
git checkout develop
|
||
# 创建一个名为iss053的分支同时切换到这个新分支
|
||
git checkout -b iss053
|
||
# 在iss053分支提交修改
|
||
git commit -a -m "添加一些git分支操作"
|
||
# 将iss053分支的变更合并到master分支
|
||
git checkout master
|
||
git merge iss053
|
||
# 合并后可以删iss053分支
|
||
git branch -d iss053
|
||
# 如果合并时发现冲突,需要手动处理一下
|
||
# 刷新远端分支列表
|
||
git remote update origin -p
|
||
# 在没有使用git add之前放弃当前全部操作
|
||
git checkout .
|
||
# 在使用了git add后但还没有git commit之前放弃当前全部操作
|
||
git reset HEAD .
|
||
git checkout .
|
||
# 在使用了git commit后回滚操作
|
||
git reset --hard HEAD^ # 回滚到上一次commit状态
|
||
git reset --hard <commitid> # 回滚到指定的任意一次提交
|
||
# 查看commitid
|
||
git log # 退出请按q键
|
||
```
|
||
|
||
## 代码推拉
|
||
|
||
> 别忘了在仓库目录下操作
|
||
|
||
```bash
|
||
# 从远程分支拉取代码到本地
|
||
git pull # 会提取默认关联的远程分支
|
||
|
||
# 添加本次要跟踪的代码(全部)
|
||
git add .
|
||
# 提交变更(在本地)
|
||
git commit -m "本次提交说明内容"
|
||
|
||
# 把变更推送到远程服务器
|
||
git push # 推送到默认关联的远程分支
|
||
git push origin # 有些时候当关联有问题时,可能需要手写origin
|
||
git push origin bob # 可以指定目标远程分支
|
||
```
|
||
|
||
## 给本地的一个文件夹添加git管理并关联远程仓库
|
||
|
||
```bash
|
||
# 在这个文件夹内执行
|
||
git init
|
||
# 给本地的一个git文件夹关联一个远程服务器
|
||
git remote add origin git@gitee.com:wandoubaba517/ps.git
|
||
# 对目录内所有文件建立跟踪
|
||
git add .
|
||
# 提交本次跟踪
|
||
git commit -m "这次提交的说明"
|
||
# 推送当前分支并建立与远程上游的跟踪
|
||
git push --set-upstream origin master
|
||
# 把本地当前分支与远端指定分支关联(关联后在本地这个分支下直接git pull和git push就行了,不需要再加origin)
|
||
git branch --set-upstream-to=origin/<branch>
|
||
```
|
||
|
||
## 在一个本地目录上添加多个远程仓库
|
||
|
||
```bash
|
||
# 关联另一个远程仓库
|
||
git remote set-url --add origin git@gitee.com:wandoubaba517/personal.git
|
||
# 推送当前分支并建立与远程上游的跟踪
|
||
git push --set-upstream origin master
|
||
# 以后再推送时直接push就行了
|
||
git push
|
||
```
|