GIT基础使用
Posted yangjunh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIT基础使用相关的知识,希望对你有一定的参考价值。
GIT简介
分布式版本控制系统,用于高效的管理各种大小项目和文件。
sudo apt-get install git
GIT使用
基本概念
- 工作区: 项目所在操作目录,实际操作项目的区域
- 暂存区: 用于记录工作区的工作(修改)内容
- 本地仓库: 用于备份工作区的内容
- 远程仓库: 远程主机上的GIT仓库
注意: 只有仓库区的内容才能和其他远程仓库交互。
项目操作过程
# 项目文件夹内初始化仓库 git init # 关联本地和远程仓库 git remote add origin path # 查看链接状态 git remote # 代码本地准备 git add * # 提交到暂存区 git commit * -m 'name' # 提交到本地仓库 # 本地仓库同步到远程仓库 git push origin master
远程同步报错及解决
请确认您有正确的访问权限并且仓库存在
# 本地 用户主目录进入.ssh文件,找到公钥 # 没有公钥时创建公钥 ssh-keygen -t rsa -C 'email' # 在github-setting-ssh中加入公钥
请确认您有正确的访问权限并且仓库存在
# 远程仓库和本地同步,消除差异 git pull origin master --allow-unrelated-histories # 重新add、commit、push
配置命令
# 需要在项目目录内配置
git config [作用域] [选项]
# 作用域
--system
--global
# 选项
1. 配置用户名
git config --system user.name name
2. 配置用户邮箱
git config --global user.email email
3. 配置编译器
git config core.editor pycharm
4. 查看配置信息
git config --list
基本命令
- 本地仓库
# 初始化仓库
git init
# 解除管理时删除.git文件即可
# 查看本地仓库,默认工作在master
git status
# 忽略设置
.gitignore文件
file 表示忽略file文件
*.a 表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
build/ 表示忽略build/目录下的所有文件
- 工作区
# 工作区-暂存区
git add a b c/*/.
# 取消暂存
git rm --cached [files]
# 暂存区-工作区
git restore <file>新
git checkout [commit id前7位] -- [file]旧
# 工作区-本地仓库
gti commit [files] -m [message]
# 比较工作区文件和仓库文件差异
git diff [file]
# 工作区-工作区
# 工作区移动或者删除文件
git mv [file] [path]
git rm [files]
# 保存工作区内容
git stash save [message]
# 查看工作区列表
git stash list
# 应用某个工作区
git stash apply [stash@{n}]
# 删除工作区
git stash drop [stash@{n}] 删除某一个工作区
git stash clear 删除所有保存的工作区
版本控制
# 查看commit日志记录:全球唯一编号,可以只用前7位
git log [--pretty=online](只显示ID和message)
# 查看所有操作记录:最上面为最新记录,利用commit_id去往任何位置
git reflog
# commit节点操作全是本地仓库内
# 退回到上一个commit节点
git reset --hard HEAD^
# 一个^表示回退1个版本,工作区自动和当前commit版本保持一致
# 退回到指定的节点
git reset --hard [commit_id/tag]
# 标签:记录节点,添加快照(备份),保存工作状态,用于版本迭代。
# 创建
git tag [tag_name] [commit_id] -m [message]
# commit_id可以不写则默认标签表示最新的commit_id位置
# 查看
git tag 查看标签列表
git show [tag_name] 查看标签详细信息
# 删除
git tag -d [tag]
分支管理
每个人在原有代码(master分支)的基础上建立自己的工作环境,单独开发,互不干扰。完成开发工作后再进行分支统一合并,逐层合并,新分支会拥有原有分支的全部内容。
# 查看分支情况
git branch [-a]
> 前面带 * 的分支表示当前工作分支
> -a标识所有分支
# 创建分支
git branch [branch_name]
# 切换工作分支
git checkout [branch]
# 创建并切换分支
git checkout -b [branch_name]
# 合并分支:父分支下
git merge 子分支[branch]
> 原分支发生了变化,和分支创建时不一样就会产生冲突
> 当合并分支时添加新的模块,冲突自动解决,只需自己决定commit
> 当合并分支时两个分支修改同一文件,则需要手动解决冲突,在主分支中删除=====/>>>>>HEAD/<<<<<<子分支,再进行add,commit。
# 删除分支
git branch -d [branch] 删除分支
git branch -D [branch] 删除没有被合并的分支
# 关联/解除远程分支
git branch --set-upstream-to origin/develop
git branch --unset-upstream <branch-name>
远程仓库
远程主机上的git仓库。实际上git是分布式结构
# 获取项目
git clone path
# 链接远程仓库
git remote add origin(远程主机别名,默认origin) https://github.com/xxxxxxxxx
# 查看连接的主机
git remote
# 删除远程主机
git remote rm [origin]
# 获取远程分支代码:自动合并
git pull
# 将远程分支master拉取到本地,作为tmp分支:手动决定合并
git fetch origin master:tmp
git merge temp
# 推送旧的版本
git push --force origin 用于本地版本比远程版本旧时强行推送本地版本
# 推送本地分支
git push -u origin 本地分支名master:远程分支名master
# 删除远程分支
git push origin [:branch]
# 推送标签
git push origin [tag] 推送本地标签到远程
git push origin --tags 推送本地所有标签到远程
# 删除远程标签
git push origin --delete tag [tagname]
项目流程
1. 克隆服务器上的代码到本地。
git clone git@gitee.com:jackfrued/python.git
2. 创建并切换到自己的分支。
git checkout -b <branch-name>
3. 在自己的分支上开发并在本地做版本控制。
4. 将自己的分支(工作成果)推到服务器。
git push origin <branch-name>
以上是关于GIT基础使用的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
VSCode自定义代码片段15——git命令操作一个完整流程
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段