【git】Git版本控制
1.在合适的位置打开bush,创建仓库
mkdir(make directory创建目录)
2.检查:跳转到当前文件夹,显示当前文件夹的相对路径
cd(change directory改变目录)
pwd(print working directory打印当前工作目录)
3.初始化
git init(git initilatize git初始化)
已经初始化空的git仓库(repository)在D盘work_git/learngit/.git
表示你现在的文件夹为空,现在多了一个.git文件夹
4.创建一个文本文件readme.txt
touch(触摸,当文件不存在时会创建该文件)
现在当前文件夹中创建了一个名为“readme”的txt类型的文件
(当然也可以手动创建)
5.手动向readme文件中添加一些内容
[外链
windows环境下,建议所有的路径都不要有中文,文本编辑器推荐用vscode
6.把文件添加到暂存区
git add(git添加)
[外链
git的文件有三个工作区:
工作目录(working directory),暂存区域(staging area),git仓库(.git directory或repository)
版本的更新过程是先由工作目录add到暂存区域,再由暂存区域commit到git仓库
7.把文件提交到git仓库
git commit -m"备注“(git提交)
现在已经把这个版本提交到仓库了
[master分支]备注
个文件改变,2行内容插入
创建readme.txt文件
(注意-m)
8.手动修改readme.txt文件
9.查看当前git中文件的状态
git status(状态)
在默认分支改变还未被暂存以提交(用”git add <file>来更新什么会被提交)意思是用git add命令把文件添加到暂存区(用“git restore <file>来丢弃改变在工作目录)意思是用git restore命令来撤回这次改变已修改:readme.txt没有已经添加的改变以提交(用git add或者git commit -a)
意思是我们已经做了修改,但还没有把它添加到暂存区
在第6步,我们说到git有三种工作区
他们分别对应三种状态:modified(已修改的),staged(已暂存的),commited(已提交的)
10.查看文件修改的不同
git diff(git difference不同)
diff --git a/readme.txt b/readme.txt 意思是变化的文件index c65888e..f4cc7a4 100644 索引--- a/reame.txt+++ b/readme.txt@@ -1,2 +1,2 @@-git is a version control system 意思是这一行减去了+git is a distributed version control system 意思是这一行新加的git is free 意思是这一行没变化
11.把文件添加到暂存区,并检查状态
git add
git status
改变将要被提交 意思是文件现在在暂存区(用”git restore --staged<file>来不存储)意思是让文件回到工作目录中已修改: readme.txt
12.把文件提交到仓库,并检查状态
git commit -m"add distributed"
git status
没有东西要被提交,工作树很干净
意思是现在三个工作区都没有任务,即所有的修改都已经提交到仓库中
13.查看记录(日志)
git log(记录/日志)
commit 3d4e…….63cd意思是commit id 的版本号,是一个很大的十六进制数,是一个哈希值,此次提交的索引HEAD->master 意思是当前版本的指针作者:名字<邮箱>提交日期:星期五 十二月 24日 11:13:52 2021年 +0800add distirbuted (你自己写的备注)log的顺序是从最近的到最远的如果不想看作者,日期信息可以用下面的命令git log --oneline(只显示一行)
git log --pretty=online(完美的=一行)意思是会显示完整的哈希值
14.练习修改,添加,提交
15.查看当前版本内容
cat <file>(固定)
16.版本退回,并查看版本
git reset --hard HEAD^(git 重置–hard 头指针的上一个^)
当前版本的头指针在3d43e7f备注
退回上上个版本可以git reset --hard HEAD^^
退回前100个版本可以git reset --hard HEAD~100
17.查看每次命令
git reflog(git referencelog查阅日志)
18.版本退回GPL版本,并查看版本内容
在当前git窗口未关闭的情况下,首先查找GPL版本的commit哈希值(前几位即可)9c07c
git reset --hard 9c07c
19.文件追踪
创建一个license.txt(许可证)文件,并查看git状态、
未被追踪的文件:(用“git add <file>"来包含进什么会被提交LICENSE没有东西被添加进以提交但是未被追踪的文件存在
意思是当一个文件首次被创立之后,是未被追踪的状态,要先添加到暂存区才能被追踪
20.查看工作区中的版本与仓库中的版本的不同
没有内容显示,就是没有差别
21.撤销修改
01,在未添加到暂存区的时候,手动修改文件,查看状态,
此时文件还没有被添加到暂存区,可以用git restore <file>
丢弃修改,并查看版本内容
02,在添加到暂存区之后,手动修改文件并添加到暂存区,查看状态
用git restore --staged <file>
来让文件回到没有添加到工作区的状态
并查看git状态,和版本内容
然后丢弃修改
PS:这是2.3之后新版的撤销操作
原来版本对应的是命令是
git checkout --<file> 撤销工作区的修改git reset HEAD <file> 把文件从暂存区放回工作区
22.删除文件
首先把创建的license.txt提交到仓库
手动删除或者用rm(remove 移除)
用“git add/rm<file>来更新什么被提交用”git restore <file>来丢弃改变在工作目录中
01.误操作,丢弃删除这个操作
02.确定要删除,git add/git rm +git commit
23.查看ssh密钥
打开git bush 软件,首先检查自己是否有ssh密钥
cd ~/.ssh
没有这样的文件或目录
表示你的系统还没有ssh
创建ssh密钥
ssh-keygen -t rsa -C "邮箱“
(ssh安全协议keygenerate钥匙生成
然后一路回车
创建完成后,再次查看.ssh文件
cd ~/.ssh
ls(List directory contents,显示目录列表)
cat ~/.ssh/id_rsa.pub(查看公钥public)
24.配置github
首先注册一个GitHub账号,点击头像,点击settings,
点击ssh keys,点击new ssh key,
添加一个名称,复制粘贴刚才的公钥(上图一长串右键copy)
创建一个新的仓库repository,命名为learngit
25.把仓库与本地的仓库联系起来
按照GitHub的提示
(在learngit的目录下打开gitbush)
git remote add origin git@github.com:gaode-8/learngit.git(远程添加仓库@网址)git branch -M maingit push -u origin main(push推-u初始化时origin源头main主分支)
这是第一次使用git的clone或者bush时会得到的命令
输入yes回车
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器
此时再看github,你会发现learngit仓库与我们本地的leargit仓库一样了
26.向远程仓库中提交
首先修改文件(在最后一行添加:git is good并添加到本地仓库)
此时github中并没有发生变化
接下来把本地仓库
git push origin mian(push推main主要的分支)
(中间发生一次错误
是因为github更新之后把master换成了main)
现在github已经变化
27.删除远程仓库
首先查看远程仓库的信息
git remote -v
fetch取 push推git remote rm <name>
即可”删除“远程仓库(这里的删除并不是真正的删除,只是取消本地仓库和远程仓库的联系)
28.克隆远程仓库
首先我在我的github上新建了一个Cplusplus_learn仓库
git clone <地址>(clone克隆,复制)
注意这里的地址有好几种写法
1.http协议: https://github.com/xxx/xxx
2.ssh协议: @github.com:xxx/xxx
可以在github上的code找到,直接复制即可
然后我们发现我们自己的电脑上多了一个Cplusplus_learn文件夹
里面也和github上面的一摸一样
检查
28.创建分支
git checkout -b <name>(创建并跳转到分支dev)(等于是 git branch devgit checkout dev两步的合并)
查看分支
(标有*的是当前分支)
29.在dev分支修改文件,并提交
[
30.合并分支
切换回main
我们发现readme中的修改不见了
合并dev分支到main
更新
快进模式
切换也可以使用 git switch dev
git switch -c dev 创建并切换到dev
31.删除分支
git branch -d dev
强行删除一个未合并的分支 要用大写的D
32.新建分支dv,并提交到github
33.创建新分支,解决冲突
创建新分支,并修改
你的分支比远程/main分支超前了一个分支
在跳转到main,修改
我们尝试合并但是发生了冲突,合并失败
自动合并Readme.txt冲突(内容):README.TXT合并冲突自动合并失败;修复冲突,然后提交结果。
用git status 查看状态
您的分支领先于2个提交的“来源/主人”。(使用“Git Push”发布您的本地提交)你有没有解除的路径。(修复冲突并运行“git提交”)(使用“git merge -abort”中止合并)未使用的路径:(使用“git添加<file> ...”标记分辨率)修改后:Readme.txt没有添加更改以提交(使用“git添加”和/或“git commit -a”)
我们也可以直接查看readme.txt
手动修改AND,并选择接受
然后提交
删除feature1
可以用带参数的git log 查看合并情况
git log --graph --pretty=oneline --abbrev-commit
35.用不用快速合并的方式合并
好处是保留合并后的分支
36.Bug修复
修改readme.txt
用git stash(储存)现场,之后可以恢复
确定在哪个分支上修复bug,就在那个分支上创建分支
然后修改bug,提交分支,合并分支
然后会到main分支继续工作
检查刚才临时储存的
回复并删除储存
git stash pop
(用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;git stash pop恢复并删除)
如果想把修复这个bug分支的操作复制到其他分支上去可以用
git cherry-pick <commit>_<commit>是修复bug分支的commit操作id_
36.查看远程仓库的信息
推送main分支
37.多人协作
38.标签
git tag <name>(标签)
默认标签是打在最新提交的commit上的。
git show <name>(查看标签内容)
也可以找到之前的操作id,补加tag
可以给标签添加信息
git tag -a <name> -m "备注“
删除本地标签
向远程推送标签
或者一次性推送全部标签
删除远程标签
39.忽略某些文件
创建 文件名为 .gitignore 的文件(注意没有后缀格式)
并提交
我们发现无法提交abc.txt了
40.为操作配置别名
git congig --global(意思是全局,这台电脑上的仓库都可以用) alias.<别名> 操作
【git】Git版本控制相关推荐
- eclipse查看git地址_使用Git进行版本控制
版本控制软件能够让我们拍摄处于可行状态下的项目的快照.更改项目(比如实现新功能)后,如果项目不能正常运行,可以恢复到前一个可行状态. 通过版本控制软件,我们可以无顾忌地改进项目,不再需要担心项目因为自 ...
- Git本地版本控制备忘
首先git是一个版本控制工具,类似于SVN 笔记包括两部分,git本地版本控制和git远程协助 一.Git本地版本控制 以git windows版本msysgit为例,下载地址http://msysg ...
- Visual Studio Code 使用Git进行版本控制
Visual Studio Code 使用Git进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 所有中文教程,竟没有一个靠谱的.遂动笔写一篇. 请确保你 ...
- Git分布式版本控制遇到的问题如何把本地的项目上传到码市上
一.Git分布式版本控制遇到的问题 错误: $ git push -u origin master fatal: unable to access 'https://git.coding.net/Su ...
- 使用git进行版本控制
在学习可视化的时候,接触到git,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可以再记录. 首先说一下版本控 ...
- 浅谈使用git进行版本控制
小编在学习可视化的时候,接触到git,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可以再记录. 首先说一下版 ...
- Git分布式版本控制工具【IDEA版】【安装和使用以及上传代码到Gitee】(一篇文章精通系列)
一.目标 了解Git基本概念 能够概述git工作流程 能够使用Git常用命令 熟悉Git代码托管服务 能够使用idea操作git 二.Git概述 1.开发中的实际场景 场景一:备份 小明负责的模块就要 ...
- 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支
使用VSTS的Git进行版本控制(四)--在Visual Studio中管理分支 可以从web版Team Services Git repo 的Branches视图中管理工作.定制视图来跟踪最关注的分 ...
- 运维之道 | Git分布式版本控制常用命令解析
Git分布式版本控制常用命令解析 一.创建版本库 版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改.删除,Git都能跟踪 1.选择一个合 ...
- 运维之道 | Git分布式版本控制系统安装、配置
Git分布式版本控制系统安装.配置 一.Git简介 Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上. SVN是集中式版本控制系统,版本库是集中放在中央服务器 ...
最新文章
- django rest framework------得心应手
- SHA256安全散列算法
- Linux vi 命令使用说明
- Gartner:2013-2014年全球MSS市场分析
- 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
- (转)你的团队需要一个领袖,而不是一个主管
- 草稿 ktv 航版 1211 rs ga 打开文件控件 文件的复制操作
- linux驱动中使用定时器的设置
- 利用openssl创建私有CA的步骤和过程
- 【钛坦白】清华大学李建:深度学习在时空大数据分析中的应用(转载)
- mysql和5g有关系吗_5g和4g有何不同
- 古风系统仙侠文推荐_5本古典仙侠全本精品小说,文笔精湛,仙味十足,值得细品一二...
- vue2编译报错Class constructor VuexModule cannot be invoked without ‘new‘
- 给Android手机设置的壁纸应该是多大尺寸
- 【转载】测试工程师怎么甩锅
- 用碎玻璃“洗脸”的奇人
- 基于STM32的智能枕头
- Linux系统优化基础和系统监控
- 1.6 入库and出库单
- python 腐蚀膨胀_opencv+python 膨胀与腐蚀
热门文章
- 虚拟机中的Linux系统如何联网?
- 从Bugreport 解读 Android电量统计原理
- 界面专访丁珂:多数企业安全体系落后,上云是最快速解法
- 【minimal problem】资料整理
- 经典面试题 之 分库分表
- Design Compiler综合出来的网表中出现\**SEQGEN**,解决方案
- JSON.parse和JSON.stringify
- 【测试】抓包技术哪家强?关于Burp、Fiddler、Charles三个工具的抓包测试
- udevinfo__ udevadm info
- python开发基础之数据类型、字符编码、文件操作