1. 初始化Git仓库:git init
作用:把项目纳入Git管理,在本地创建一个Git仓库
git init
命令成功后,会在对应文件夹自动生成一个.git文件夹,表示这个项目已经是Git管理的项目了
git init 成功后
2. 克隆远程仓库:git clone
通常在进入公司第一天,把公司的项目克隆在自己本地
// xxx表示远程仓库地址
git clone xxx
// 例
git clone https://gitee.com/xuliangzhan_admin/vxe-table.git
3. git文件状态
- 未跟踪:默认情况下,Git仓库下的文件也没有添加到Git管理中,我们需要通过git add命令来操作
- 已跟踪:添加到Git仓库管理的文件处于已跟踪状态,Git可以对其进行各种跟踪管理
已跟踪状态文件可细分为三种状态
- Modified:修改了某个文件后,该文件就会处于Modified状态
- staged:暂缓区中的文件状态
- Unmodified:未修改状态,commit命令后,可以将staged中的文件提交到Git仓库
4. 查看文件状态:git status
- 可以查看到Untracked(未跟踪)的文件和staged(暂缓区)的文件
git status
// 查看简洁状态
git status -s
5. 提交到暂缓区:git add
- 执行git add命令,可以把未跟踪或已修改状态的文件,提交到暂缓区
// 单独提交一个文件到暂缓区
git add 文件名
// 把未跟踪或已修改状态的文件,提交到暂缓区
git add .
6. 提交到Git本地仓库:git commit -m
- 执行git commit到本地仓库
git commit -m "提交描述"
// 可以不提交到暂缓区,而是直接把未跟踪或已修改状态的文件,提交到本地Git仓库
git commit -a -m "提交描述"
7. 忽略文件:.gitignore
- .gitignore是git的忽略文件,在执行git add . 时,会自动忽略这个文件中写的文件
- .gitignore默认新建项目时会自动生成,可根据需要在这个文件中补充需要忽略的文件
例:
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
8. 查看提交日志:git log
git log
// 查看日志显示在一行
git log --pretty=oneline
// 查看日志图结构,在多分支结构时比较好用
git log --pretty=oneline --graph
// 查看所有操作的日志
git reflog
9. 回滚版本:git reset --hard
// 回滚到上一个版本
git reset --hard HEAD^
// 回滚到指定id的版本
git reset --hard 版本id
10. 操作远程仓库:gti remote
// 列出所有远程仓库
git remote
// 列出所有远程仓库并付带地址
git remote -v
// 与远程仓库建立连接
git remote add 远程仓库别名 远程仓库地址
11. 拉取远程仓库:git pull
git pull 是git fetch + git merge的结合命令
// 拉取远程仓库代码
git fetch
// 把本地分支代码与远程仓库分支代码合并
git merge
// 可以直接实现上面两个步骤的功能,推荐
git pull
12. 推送到远程仓库:git push
// 把提交到本地仓库的代码推送到远程仓库
git push
13. 新建分支:git branch
// 查看所有分支
gut branch
// 新建分支
git branch 分支名
14. 切换分支:git checkout
git checkout 分支名
15. 新建并切换分支
- 可以使用git checkout或git switch新建并切换到新分支
git checkout -b 分支名
// 或
git switch -c 分支名
16. 合并分支:git merge
- 例如在dev分支上提交了其他代码,需要合并到master主分支上时,可以使用git merge把dev分支的内容合并到master主分支
// 第一步,切换到master
git checkout master
// 第二步,合并dev分支
git merge dev
- 如果在合并分支时,出现冲突,需要解决冲突后再提交代码
解决冲突的四个选项
- Accept Current Change:保留当前(这里指的是master)分支改变
- Accept Incoming Change:保留被合并(这里指的是dev)分支改变
- Accept Both Changes:保留所有改变
- Compare Changes:对比
- 通过上面其中一个解决完冲突后,执行git add .和git commit -m提交到本地仓库
17. 创建远程分支
- 通过在本地创建分支,推送到远程仓库时会自动创建远程分支,这样本地分支与远程分支就建立了连接,下次再推送代码时,就会自动推送到对应的远程分支
// 第一步,本地创建并切换到分支
git checkout -b test1
// 第二步,把本地仓库代码推送到远程仓库,并新建与本地分支相同分支名的远程分支
git push -u origin test1
18. 删除远程分支
// 删除远程对应分支
git push origin -d 分支名
