目录
文章目录
git_2">第一章 git简介
1.Git 与SVN
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
2.Git 工作区、暂存区和版本库
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
git_21">第二章 git常用命令学习
1.ssh设置
生成公钥私钥
ssh-keygen -t -rsa
2.设置用户信息
1.临时修改用户名和邮箱
如果只需要修改当前仓库的提交者信息,可以使用以下命令:
git config user.name "新用户名"
git config user.email "新邮箱地址"
查看临时配置:
git config user.name
git config user.email
2.全局修改用户名和邮箱
git config --global user.name "lixiaowei"
git config --global user.email "995439743@qq.com"
查看全局用户名和邮箱配置
git config --global user.name //查看用户名
git config --global user.email //查看邮箱
git config --list //查看其他更多信息
3.常用命令设置
1.初始化本地仓库init
初始化git仓库
一般有两种方式,一种是从远程仓库克隆一个完整的项目到本地,另一种是本地初始化一个新的git仓库。
//初始化仓库带工作区
git init
//初始仓库不带工作区
git init --bare
2.克隆clone
用于从远程仓库克隆一个完整的项目到本地。它不仅会创建一个新的 Git 仓库,还会下载所有的历史记录和分支,并将远程仓库设置为默认的上游仓库
git clone 远程仓库地址
git_status_87">3.查看状态 git status
是 Git 中一个非常常用的命令,用于查看当前工作目录的状态。它可以帮助你了解哪些文件已被修改、哪些文件已添加到暂存区、以及哪些文件尚未被跟踪。
//1.查看状态,命令用于显示工作目录和暂存区的状态。它告诉你有哪些修改被暂存,哪些没有,
//以及哪些文件被 Git 未跟踪。
git status
//2.查看状态 使输出信息更加简洁
git status -s
//3.显示状态并以长模式输出,列出已修改的文件的详细信息:
git status --long
//4.显示状态并以short模式输出,但不列出已跟踪的文件:
git status -u
4.添加add命令
//将未跟踪的文件加入暂存区
git add <文件>
//将暂存区的文件取消暂存
git reset <文件>
//1.添加单个文件到暂存区
git add 文件名
//2.添加所有文件到暂存区
git add .
//3.添加某个目录到暂存区
git add 目录名/
//4.使用通配符添加多个文件到暂存区:
git add *.txt
//5.添加所有文件和目录的变化到暂存区(包括新的文件和目录,但不包括未跟踪的文件):
git add -A
//6.添加自上次 commit 以来的所有变化到暂存区(包括删除的文件):
git add -u//7.强制添加所有文件
git add -f .
5.添加评论
git commit -m "文件描述"
git commit --amend //修改最后提交
6.分支操作
1.创建分支
//创建分支
git branch <branch_name>
//创建新分支并且切换到该分支
git checkout -b <branch_name>
2.查看分支
//1.查看本地分支
git branch
//2.查看远程分支
git branch -r
//3.查看本地和远程分支
git branch -a
//4.本地创建分支
git branch 分支名称
//5.切换分支
git checkout分支名称
//6.删除分支
git branch -d 分支名称
//7.强制删除分支
git branch -D 分支名称
//8.提交本地分支到远程仓库
git push <仓库简称> <分支名称> //git push origin b1
//9.分支h合并
git merge <分支名称>
//10.删除远程仓库分支
git push <仓库简称> -d <分支名称> //git push origin -d b1
3.切换分支
//1.切换到指定分支
git checkout <branch_name>
//2.指定提交切换分支
git checkout <branch_name> <commit_hash>//3.指定提交切换并且创建分支
git checkout -b <分支名称>
4.删除分支
// 删除本地分支(只适用于已合并的分支)
git branch -d <branch_name>
// 强制删除本地分支 (未合并的也会被删除)
git branch -D <branch_name>
//删除远程分支
git push origin --delete <branch_name>
7.查看当前远程地址
//1.查看远程 列出指定的每一个远程服务器的简称
git remote
//2.查看远程 列出简称和地址
git remote -v
//3.查看远程仓库详细地址
git remote show <仓库简称>
8. 分支比较
git diff <branch_1> <branch_2>
9.log命令
- 查看特定文件的提交记录
git log <文件名>
2.查看某个分支的提交记录
git log branch-name
3.显示提交历史的分支结构
git log --graph
// 示例
git log --oneline --graph --all
// 输出
* 789abcd (HEAD -> main) Fix bug in calculation
| * abc1234 (feature-branch) Add new feature
|/
* 1234567 Initial commit
git_rm_240">10.删除命令 git rm
//1.删除工作区和暂存区的文件:
git rm <file>
//2.仅删除工作区的文件,保留暂存区的版本(即撤销上一次的 git add):
git rm --cached <file>
//3.在删除前询问确认:
git rm -i <file>
//4.删除目录:
git rm -r <directory>
//5.仅从工作区删除,不影响暂存区和本地仓库:
git rm --cached -r <directory>
//6.强制删除文件,即使文件被修改过:
git rm -f <file>
//7.删除所有未跟踪的文件和目录(通常用于清理生产环境):
git rm -rf .//8.如果工作区误删除,想要回退
git checkout head <文件名>
11.添加/移除远程仓库
//1.添加远程仓库
git remote add <shortname> <url>
//1.添加远程仓库
git remote rm <shormame>
12.从远程仓库获取代码
//1.从远程仓库克隆
git clone <url>
//2.从远程仓库拉去(拉取到.git目录,不会合并到工作区,工作区发生变化)
git fetch <shormame>
//3.手动合并 把某个版本的某个分支合并到当前工作区
git merge <shortname>/<分支名称>
//4.从远程仓库拉取=fetch+merge
git pull <shortname> <分支名称>
git pull <shortname> <分支名称> --allow--unrelated-histories//强制拉取合并
//5.推送到某个分支
git push [remote-name] [branch-name]
eg:git push origin master
13.命令行-tag
在 Git
中,tag是标记存储库
历史记录中特定提交的一种方式。tag通常用于标记项目的特定版本
,例如版本 1.0
或 2.0
。
tag可以用于指定在仓库历史记录的某个特定点上创建的版本,这在软件开发中非常有用。如果需要在软件发布时创建tag,开发人员就可以跟踪哪个版本用于真实世界中的生产环境。在软件开发中,tag还可以用于标记里程碑或特定功能的实现。
除此之外,tag还可以用于将存储库中的提交与版本控制系统中的标记相关联。这可以用于确保特定版本的软件与存储库中的特定提交相关联。在软件开发中,这可以用于确保特定版本的软件与单独的存储库分支相关联。
//1.列出所有标签
git tag
//2.查看tag 详情
git show [tagname]
//3.新建一个tag
git tag [tagname]
eg:git push origin 名称 //推送到远端
//4.提交制定的tag
git push [仓库简称] [tagname]
//5.新建一个分支指向某个tag
git checkout -b [branch] [tag]
//6.删除本地tag
git tag -d [tag]
//7.删除远程tag
git push origin :refs/tags/[tag]
联**。
//1.列出所有标签
git tag
//2.查看tag 详情
git show [tagname]
//3.新建一个tag
git tag [tagname]
eg:git push origin 名称 //推送到远端
//4.提交制定的tag
git push [仓库简称] [tagname]
//5.新建一个分支指向某个tag
git checkout -b [branch] [tag]
//6.删除本地tag
git tag -d [tag]
//7.删除远程tag
git push origin :refs/tags/[tag]