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版本控制相关推荐

  1. eclipse查看git地址_使用Git进行版本控制

    版本控制软件能够让我们拍摄处于可行状态下的项目的快照.更改项目(比如实现新功能)后,如果项目不能正常运行,可以恢复到前一个可行状态. 通过版本控制软件,我们可以无顾忌地改进项目,不再需要担心项目因为自 ...

  2. Git本地版本控制备忘

    首先git是一个版本控制工具,类似于SVN 笔记包括两部分,git本地版本控制和git远程协助 一.Git本地版本控制 以git windows版本msysgit为例,下载地址http://msysg ...

  3. Visual Studio Code 使用Git进行版本控制

    Visual Studio Code 使用Git进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 所有中文教程,竟没有一个靠谱的.遂动笔写一篇. 请确保你 ...

  4. Git分布式版本控制遇到的问题如何把本地的项目上传到码市上

    一.Git分布式版本控制遇到的问题 错误: $ git push -u origin master fatal: unable to access 'https://git.coding.net/Su ...

  5. 使用git进行版本控制

    在学习可视化的时候,接触到git,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可以再记录. 首先说一下版本控 ...

  6. 浅谈使用git进行版本控制

    小编在学习可视化的时候,接触到git,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可以再记录. 首先说一下版 ...

  7. Git分布式版本控制工具【IDEA版】【安装和使用以及上传代码到Gitee】(一篇文章精通系列)

    一.目标 了解Git基本概念 能够概述git工作流程 能够使用Git常用命令 熟悉Git代码托管服务 能够使用idea操作git 二.Git概述 1.开发中的实际场景 场景一:备份 小明负责的模块就要 ...

  8. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支

    使用VSTS的Git进行版本控制(四)--在Visual Studio中管理分支 可以从web版Team Services Git repo 的Branches视图中管理工作.定制视图来跟踪最关注的分 ...

  9. 运维之道 | Git分布式版本控制常用命令解析

    Git分布式版本控制常用命令解析 一.创建版本库 版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改.删除,Git都能跟踪 1.选择一个合 ...

  10. 运维之道 | Git分布式版本控制系统安装、配置

    Git分布式版本控制系统安装.配置 一.Git简介 Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上. SVN是集中式版本控制系统,版本库是集中放在中央服务器 ...

最新文章

  1. django rest framework------得心应手
  2. SHA256安全散列算法
  3. Linux vi 命令使用说明
  4. Gartner:2013-2014年全球MSS市场分析
  5. 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
  6. (转)你的团队需要一个领袖,而不是一个主管
  7. 草稿 ktv 航版 1211 rs ga 打开文件控件 文件的复制操作
  8. linux驱动中使用定时器的设置
  9. 利用openssl创建私有CA的步骤和过程
  10. 【钛坦白】清华大学李建:深度学习在时空大数据分析中的应用(转载)
  11. mysql和5g有关系吗_5g和4g有何不同
  12. 古风系统仙侠文推荐_5本古典仙侠全本精品小说,文笔精湛,仙味十足,值得细品一二...
  13. vue2编译报错Class constructor VuexModule cannot be invoked without ‘new‘
  14. 给Android手机设置的壁纸应该是多大尺寸
  15. 【转载】测试工程师怎么甩锅
  16. 用碎玻璃“洗脸”的奇人
  17. 基于STM32的智能枕头
  18. Linux系统优化基础和系统监控
  19. 1.6 入库and出库单
  20. python 腐蚀膨胀_opencv+python 膨胀与腐蚀

热门文章

  1. 虚拟机中的Linux系统如何联网?
  2. 从Bugreport 解读 Android电量统计原理
  3. 界面专访丁珂:多数企业安全体系落后,上云是最快速解法
  4. 【minimal problem】资料整理
  5. 经典面试题 之 分库分表
  6. Design Compiler综合出来的网表中出现\**SEQGEN**,解决方案
  7. JSON.parse和JSON.stringify
  8. 【测试】抓包技术哪家强?关于Burp、Fiddler、Charles三个工具的抓包测试
  9. udevinfo__ udevadm info
  10. python开发基础之数据类型、字符编码、文件操作