[TOC]
![image.png](https://upload-images.jianshu.io/upload_images/13971762-67e40a13938ed572.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* **Remote:远程仓库**
* **Repository:本地仓库**
* **Index/Stage:暂存区**
* **workspace:工作区**
# 常用命令:
## 1、新建代码库
```
# 在当前目录创建一个git代码库
git init
# 新建一个目录,将其初始化为git代码库
git init [project_name]
# 从远程仓库clone一个git代码库到本地
git clone [url]
```
## 2、本地仓库配置
```
# 展示本地的git配置
git config list
# 设置本地git的用户名、邮箱等
git config [--global] user.username "uname"
git config [--global] user.email "example.@xxx.com"
# 查看本地git的用户名和邮箱等
git config [--global] user.username
git config [--global] user.email
```
## 3、增加/删除文件
```
# 添加单个文件
git add [fileName]
# 添加多个文件
git add [fileName1] [fileName2] ...
# 添加当前目录下的所有文件
git add .
# 添加时,每遇到变化时,都要求再次确认,即同一文件多处改变,需要确认多次
git add -p [fileName]
# 删除工作区文件,将删除的文件放入暂存区
git rm [fileName] [fileName] ...
# 修改文件名
git mv [oldName] [newName]
```
## 4、代码提交
```
# 提交整个暂存区到仓库
git commit -m "注释"
# 提交暂存区的指定文件到仓库
git commit [fileName1] [fileName2] -m "注释"
# 提交
```
参考文章:[一篇文章,教你学会Git](https://www.jianshu.com/p/072587b47515 "一篇文章,教你学会Git")
![image.png](https://upload-images.jianshu.io/upload_images/13971762-bfbb27c8595967a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
[](https://www.jianshu.com/p/072587b47515)***附带常用的git一般流程***
```shell
1、从远程获取代码
git clone git clone ssh://git@git.sankuai.com/~duoshilin/test.git
2、查看本地文件状态
git status
绿色:添加到了暂存区
红色:修改过但未添加到暂存区
3、提交代码到远程
①添加到暂存区
git add filename1,filename2
git add .
撤销添加到暂存区
git reset HEAD filename
②提交到本地代码仓库
git commit -m "注释必填"
③提交到远程代码仓库
git push origin 本地分支名:远程分支名(没有可自动创建)
附:可进行强制提交覆盖上次的分支
git commit --amend
git push origin 本地分支名:远程分支名 --force
本地撤销为push前的版本,一般用于push后发现多提交
git reset --soft HEAD~1
git status
修改
git commit -m ""
git push origin 本地分支名:远程分支名 --force
4、分支管理
①创建并切换到新分支
git checkout -b newBranchName
//checkout 的-b参数表示创建并切换,相当于以下两句话
git branch newBranchName
git checkout newBranchName
②查看分支
git branch
5、将本地代码放到一个空的仓库中
cd existing-project
git init
git add --all
git commit -m "Initial Commit"
git remote add origin ssh://git@git.sankuai.com/~duoshilin/test.git
git push origin master
```