Git基本使用

Git简介

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。是现代软件开发中不可或缺的工具之一,它通过其强大的分支管理、快速的操作和高效的协作能力,极大地促进了团队的开发效率和代码管理的便利性。

Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存域和多个工作流分支等特性。由Linus Torvalds为了管理Linux内核开发而创建。

Git下载安装地址:https://git-scm.com/

版本控制

版本控制是一种记录文件内容变化的系统,它允许用户查阅特定版本的修订历史。通过记录文件修改的详细历史,版本控制使得用户能够轻松查看和管理项目的不同版本,便于需要时进行版本切换和比较。

版本控制系统中的客户端并非简单地提取最新版本的文件快照,而是将整个代码仓库完整地镜像到本地。因此,每次文件的提取操作实际上都是对整个文件仓库的完整备份。这种方式使得即使发生了文件损坏或其他问题,也可以通过其他客户端的本地仓库进行快速恢复,确保项目数据的安全和稳定性。

分支概述

在 Git 中,分支是指向 Git 仓库中特定提交对象(commit)的可变指针。每个分支代表项目开发过程中的一个独立路径,允许开发人员并行进行不同的工作,而无需影响主线(主分支)的稳定性和开发进度。

在版本控制过程中,当需要同时推进多个任务时,可以为每个任务单独创建分支。这样一来,开发人员可以将各自的工作与主任务分隔开来,而在开发自己的分支时不会影响到主分支的稳定性和进度。

分支的主要优势在于能够并行推进多个功能的开发,从而提升整体开发效率。每个分支在开发过程中是独立的实体,如果某个分支的开发失败或不符合预期,可以直接删除而不会对其他分支造成任何影响。

Git常用命令

设置用户签名

git config --global user.name 用户名
git config --global user.email 邮箱

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。

了解所有Git配置

git config --list

初始化本地库

git init

查看当前所在分支(Windows PowerShell不显示,git bash则会出现在文件路径后面)

git branch --show

查看本地库状态

git status

添加文件到暂存区

git add 文件名

添加所有文件到暂存区

git add .

提交到本地库

git commit -m "日志信息"

查看历史记录

git reflog

版本穿梭

git reset --hard 版本号

显示提交历史

git log

创建分支

git branch 分支名

切换分支

git checkout 分支名

创建并切换分支

git checkout -b 分支名

删除本地分支(如果该分支还未合并到当前分支会出现警告)

git checkout -d 分支名

强制删除本地分支(直接删除)

git branch -D 分支名

查看所有分支(包括本地分支和远程分支)

git branch -a

查看本地分支最新提交信息

git branch -v

查看远端分支

git branch -r

合并其他分支

git merge 分支名

拉取远端代码

git clone 地址

本地分支获取远端最新更改

git pull

获取所有最新的分支和数据

git fetch

遇到冲突中止合并

git merge --abort

本地分支推送远端并建立连接

push -u origin 分支名

本地分支与远端分支建立连接

git push --set-upstream origin 分支名

本地分支推送远端连接的分支

git push

本地分支推送远端目标分支

git rebase 分支名

删除远端分支

git push -- delete origin 分支名

查看帮助

git --help

查看指定命令帮助

git 命令 --help
# 或者
git help 命令

如:git checkout --help 和 git help checkout

输入命令会打开网页端查看帮助信息。

查找一段时间内的提交记录

git log --since="开始时间" --until="结束时间"

查找一段时间内指定账号的提交记录

git log --since="开始时间" --until="结束时间" --author="账号名"

查找一段时间内指定账号的每次提交的变更行数

git log --since="开始时间" --until="结束时间" --author="账号名" --oneline --shortstat

查找一段时间内指定账号提交的变更行数总数

git log --since="开始时间" --until="结束时间" --author="账号名" --numstat --pretty="%H" | awk 'NF==3 {plus+=$1; minus+=$2} END {printf "Total lines added: %s, Total lines deleted: %s\n", plus, minus}'

查找一段时间内指定账号提交的次数

git log --since="开始时间" --until="结束时间" --author="账号名" --pretty='%ae' |sort |uniq -c

查找一段时间内分支合并次数

git log --since="开始时间" --until="结束时间" --merges --grep="Merge branch '分支名'" --pretty='%aN' | wc -l

Git上传代码基本流程

场景一:新建分支首次上传代码

bash 复制代码
# 新建文件夹
# 克隆远程仓库到文件夹里
git clone 地址
# 进入克隆下来的文件目录

# 建立分支
# 创建并切换到本地分支
git checkout -b 分支名
# 如果远端没有同名分支,则推送本地分支到远程并建立跟踪关系
git push -u origin 分支名
# 如果远端有同名分支,则本地分支与远端分支建立连接
git push --set-upstream origin 分支名

# 提交代码
# 修改代码后添加到暂存区
git add .
# 提交到本地仓库
git commit -m "日志信息"
# 送本地修改到远程同名分支
git push

# 之后在页面申请合并主分支

场景二:已有项目与人合作协作上传代码

bash 复制代码
# 获取最新代码
# 切换主分支(一般是dev分支或者master分支)
git checkout 主分支名 
# 获取最新主分支代码
git pull
# 切换本地个人开发分支
git checkout 分支名
# 合并最新主分支代码
git merge 主分支名 

# 提交代码
# 修改代码后添加到暂存区
git add .
# 提交到本地仓库
git commit -m "日志信息"
# 送本地修改到远程同名分支
git push

# 之后在页面申请合并主分支
相关推荐
但老师3 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y3 小时前
git创建分支
git
研究是为了理解8 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT8 小时前
Git 的基本概念和使用方式
git
Winston Wood11 小时前
一文了解git TAG
git·版本控制
喵喵先森12 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54313 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio15 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。16 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie618 小时前
在IDEA中使用Git
java·git