Git基本使用

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可以对其进行各种跟踪管理

已跟踪状态文件可细分为三种状态

  1. Modified:修改了某个文件后,该文件就会处于Modified状态
  2. staged:暂缓区中的文件状态
  3. 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
  • 如果在合并分支时,出现冲突,需要解决冲突后再提交代码

解决冲突的四个选项

  1. Accept Current Change:保留当前(这里指的是master)分支改变
  2. Accept Incoming Change:保留被合并(这里指的是dev)分支改变
  3. Accept Both Changes:保留所有改变
  4. Compare Changes:对比
  • 通过上面其中一个解决完冲突后,执行git add .和git commit -m提交到本地仓库

17. 创建远程分支

  • 通过在本地创建分支,推送到远程仓库时会自动创建远程分支,这样本地分支与远程分支就建立了连接,下次再推送代码时,就会自动推送到对应的远程分支
// 第一步,本地创建并切换到分支
git checkout -b test1
// 第二步,把本地仓库代码推送到远程仓库,并新建与本地分支相同分支名的远程分支
git push -u origin test1

18. 删除远程分支

// 删除远程对应分支
git push origin -d 分支名
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一. 掌握 - git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > ...
    Louis_hey阅读 3,443评论 1 3
  • Git简单概述 1、什么是git- git是一款开源的分布式版本控制工具- 在世界上所有的分布式版本控制工具中,g...
    7dfa9c18c1d1阅读 5,502评论 0 0
  • 经过一下午的git学习,感觉受益匪浅,不扯淡了,直接进入主题吧,以下是小二对git的一些见解。 首先取得项目的gi...
    走在路上的小二阅读 3,150评论 0 3
  • Git的使用心得 由于公司对我的代码管理不严谨,所以荒废了好久的Git,一直就没怎么用,后面也多忘光了,所以再次重...
    IUVO阅读 2,425评论 0 1
  • 一、Git与Svn的区别 1、,GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,...
    努力的静静阅读 1,085评论 0 1

友情链接更多精彩内容