git 常用指令

2020-09-03  本文已影响0人  nnlrl

GIT

GIT简介

  1. 什么是git: git是一个开源到分布式版本控制系统, 用于高效的管理各种大小项目和文件

  2. 代码管理工具的用途

  • 防止代码丢失, 做备份
  • 项目的版本管理和控制, 可以通过设置节点进行跳转
  • 建立各自的开发环境分支, 互不影响, 方便合并
  • 在多终端开发时, 方便代码的相互传输
  1. git的特点
  • git是开源的, 多在linux下使用, 可以管理各种文件
  • git是分布式的项目管理工具(svn是集中式的)
  • git的数据管理更多样化, 分享速度快, 数据安全
  • git拥有更好的分支支持, 方便多人协调

GIT使用

基本概念

注意: 在本地仓库中, git总是希望工作区的内容和仓库区保持一致, 而且只有仓库区的内容才能和其他远程仓库交互

初始设置

配置命令: git config 

配置所有用户: git config --system [选项]
- 配置文件位置: /etc/gitconfig

配置当前用户: git config --global [选项]
- 配置文件位置: ~/.gitconfig

配置当前项目: git config [选项]
- 配置文件位置: project/.git/config
# 配置用户名
sudo git config --system user.name xxxx

# 配置用户邮箱
git config --global user.email xxxx@xxxx.com

基本命令

  1. 初始化仓库

git init
意义: 将某个项目目录变为git操作目录, 生成git本地仓库, 该项目可以使用git管理

  1. 查看仓库本地状态

git status
说明: 初始化仓库后默认工作在master分支, 当工作区与仓库区不一致的时候会有提示

  1. 将工作区记录到暂存区

git add [files]
说明: 将修改过的文件(与仓库区不同)进行记录, 放入暂存区

  1. 撤销暂存记录

git rm --cached [files]
说明: 将暂存区的文件删除以取消暂存

扩展延申

在git项目中可以通过项目的某个文件夹下定义.gitignore文件的方式, 规定相应的忽略规则, 用来管理当前文件夹下的文件的git提交行为, .gitignore文件是可以提交到共有仓库中, 这就为该项目下的所有开发者都共享一套定义好的忽略规则, 在.gitignore中, 遵循响应的法则, 在每一行指定一个忽略规则

.gitignore忽略规则

  • file: 表示需要忽略的文件
  • *.a: 表示所有以.a结尾的文件
  • !lib.a: 表示但lib.a除外
  • build/: 表示忽略build/目录下的所有文件, 过滤整个文件夹
  1. 将文件同步到本地仓库

git commit [file] -m [message]
说明: message表示添加一些同步信息, 表达同步内容

  1. 查看commit日志记录

git log
git log --pretty=oneline

  1. 比较工作区文件和仓库文件差异

git diff [file]

  1. 将暂存区文件或者某个commit节点文件恢复到工作区

git checkout [commit] --[file]
说明: 为了防止误操作, checkout还有切换分支的作用

  1. 移动或删除文件

git mv [file] [path]
git rm [files]
注意: 这两个操作会修改工作区内容, 同时将操作记录提交到暂存区

版本控制

  1. 退回上一个commit节点

git reset --hard HEAD^
说明: 一个^表示退回一个版本, 以此类推, 当版本回退之后工作区会自动和当前commit保持一致

  1. 退回到指定的commit节点

git reset --hard [commit_id]

  1. 查看所有操作记录

git reflog
注意: 最上面的为最新记录, 可以利用commit_id去往任何操作位置

  1. 创建标签

标签: 在项目中的重要commit位置添加快照, 保存当时的工作状态, 一般用于版本的迭代

git tag [tag_name] [commit_id] -m [message]
说明: commit_id可以不写则默认标签表示最新的commit_id位置, message也可以不写, 但是最好添加

  1. 查看标签

git tag 查看标签列表
git show [tag_name] 查看标签详细信息

  1. 去往某个标签节点

git reset --hard [tag_name]

  1. 删除标签

git tag -d [tag_name]

保存工作区

  1. 保存工作区内容

git stash save [message]
说明: 将工作区未提交的的修改封存, 让工作区回到修改前的状态

  1. 查看工作区列表

git stash list
说明: 最新保存的工作区在最上面

  1. 应用某个工作区

git stash apply [stash@{n}]
说明: 应用某个暂存方案, 最新保存的工作区在最上面

  1. 删除工作区

git stash drop [stash@{n}] 删除某一个工作区
git stash clear 删除所有保存的工作区

分支管理

定义: 分支即每个人在原有代码(分支)的基础上建立自己的工作环境, 单独开发, 互不干扰, 完成工作开发后在进行统一分支合并

  1. 查看分支情况

git branch
说明: 前面带*的分支表示当前的工作分支

  1. 创建分支

git branch [branch_name]
说明: 创建新分支

  1. 合并分支

git merge [branch_name]
将其他分支的内容合并到当前分支, 冲突问题是合并分支过程中最为棘手的问题

当分支合并时, 原分支和发生了变化的分支就会产生冲突, 当合并分支时添加新的模块, 这种冲突可以自动解决, 只需自己决定commit操作即可
当分支合并时两个分支修改了同一个文件, 则需要手动解决冲突

  1. 删除分支

git branch -d [branch] 删除分支
git branch -D [branch] 删除没有被合并的分支

远程仓库

远程仓库上的git仓库, 实际上git是分布式结构, 每台主机的git仓库结构类似, 只是把别人主机上的git仓库称为远程仓库

GitHub简介

github是一个开源的项目社区网站, 拥有全球最多的开源项目, 开发者可以注册网站在github上建立自己的仓库

获取项目

git clone https://github.com/xxxx
注意: 获取到本地的项目会自动和github远程仓库建立连接, 且获取的项目本身也是git项目

创建删除git仓库

远程仓库操作命令

  1. 连接远程仓库

git remote add origin https://github.com/xxxx
说明: 连接远程仓库, 并命名为origin

  1. 删除远程仓库

git remote rm origin
说明: 删除名为origin的远程仓库

  1. 向远程仓库推送

git push -u origin master
说明: 将本地master分支推送至远程origin仓库, -u表示第一次使用origin和本地建立连接

  1. 上传标签

git push origin [tag] 推送本地标签到远程
git push origin --tag 推送本地所有标签到远程

  1. 推送旧的版本

git push --force origin 用于本地版本比远程版本旧时强行推送本地版本

  1. 删除远程分支和标签

git branch -a 查看所有分支
git push origin [:branch] 删除远程分支
git push origin --delete tag [tag_name] 删除远程仓库标签

  1. 获取远程代码

git pull 获取远程分支代码
git fetch origin master:tmp 将远程分支master拉取到本地, 作为tmp分支
区别: pull将远程内容直接拉取至本地, 并和对应分支内容进行合并, fetch将远程分支内容拉取到本地, 但是不会和本地对应分支合并, 自己判断后在使用merge合并

上一篇下一篇

猜你喜欢

热点阅读