git入门笔记

Git 来源

Git是分布式版本管理系统,早期是因为Linus为了维护Linux社区的各种版本而开发的软件。

分布式的好处就是在每个人的计算机中都有一个完整的模板库

官网安装https://git-scm.com/downloads

清华镜像https://mirrors.tuna.tsinghua.edu.cn/github-release/git-for-windows/git/

然后输入以下命令

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

新建仓库

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
git init

添加文件git add <file>

提交到仓库git commit -m <massage>

如果想要修改git commit 时的默认编辑器可以

git config --global core.editor notepad++

时光穿梭机

查看仓库状态git status

查看修改git diff

查看历史版本git log

精简为一行查看历史版本git log --pretty=oneline

每一个版本都有一个commit id(版本号)

Git用HEAD表示最先的版本,上一个版本是HEAD^,上上一个版本是HEAD^^,以此类推。往上100个版本可以写作HEAD~100

回到上个版本git reset --hard HEAD^

也可以用git reset --hard <commit id> 来实现版本跳跃,既可以向前也可以先后,版本号不必写全,写几个就行,但写太短如果重复就会出问题

git reflog记录了每一次命令

工作区和版本库

我们所能看到的界面仓库界面就是工作区

在工作区中还有个隐藏目录.git,里面存放了我们各个版本的文件

Git为我们创建了一门默认分支master和一个指针HEAD,不同的版本切换实际是指针在移动,所以时间效率很高

我们在向版本库中提交是分为了两步

  1. git add这一步是将当前的文件修改添加到暂存区
  2. git commit这一步是将暂存区的提交到当前分支

和其他版本控制软件相比Git储存的版本库是储存修改而不是文件

第一次修改 > git add > 第二次修改 > git master

这样在我们的版本库中只会存放第一次修改,因为第二次修改没有被加入的暂存区中

第一次修改 > git add > 第二次修改 > git add > git master

这样在版本库中我们就可以看到一个文件的两次修改

git status就可以查看当前暂存区中的修改情况

撤销修改

git checkout -- <fail>可以文件fail的修改全部删除,这里分为两种情况

  • fail自修改后还没有被加入暂存区,此时撤销就和版本库的最新版本相同
  • fail已经添加到暂存区中又做了修改,此时的撤销就是回到最后一次添加到暂存区后的状态

如果既想撤销工作区的修改,并且清空暂存区可以用git reset HEAD <file>可以回到版本库中的最新状态

删除文件

如果再工作区删除一个文件,如果我们确实要删除该文件,那么可以用git rm <fail>是在版本库中删除文件

如果误删了文件,但版本库中还有可以用gti checkout -- <fail>git checkout命令实际是用版本库中的最新版本替换当前版本

创建远程库

廖雪峰教程

按着教程走就行

首先创建ssh

ssh-keygen -t rsa -C "youremail@example.com"

在用户的主目录中找到.ssh目录,其中id_rsa是私钥,id_rsa.pub是公钥,在远程仓库中加入公钥即可

如果要关联远程库,使用命令git remote add origin git@server-name:path/repo-name.git

在关联库时要给库起一个名字origin是默认的名字

如果要把本地库提交到远程库用命令git push origin master

在第一使用时git push -u origin master这要就把本地库与远程库的分支关联起来,以后可以简化命令

从远程库克隆

刚才说的都是现有本地库,在推送到远程库上,实际中我们一般是先创建远程库在从远程库上克隆

但我们在网上创建好仓库后可以用

git clone <仓库地址>

这样就出来一个文件夹,是我们从远程库clone的一个仓库

分支管理

创建分支

gitmaster是主分支,有时候我们需要分别开发多个功能是可以创建多个分支在各自的分支完成后,在合并到一个分子中

git checkout -d dev

这里加上-d表示创建并切换,相当于以下两句话

git branch dev
git checkout dev

可以用git branch查看当前的分支情况,前面有*代表当前分支

dev分支的操作并不会对master产生影响,分支操作完成后合并分支

git merge dev

删除分支,git branch -d dev这样就可以删除这个分支

在新版本的git中新增了一给switch命令可以来切换分支,可以防止和撤回的checkout混淆

创建并切换到新分支可以

git switch -c dev

切换分支可以用

git switch dev

解决冲突

如果在两个分支同一个文件都做的修改,在合并时就会出现冲突

git会用<<<<<<<=======>>>>>>>,我们要打开文件手动消除冲突然后重新提交一次

分支管理策略

之前我们的合并时快速合并,合并后如果删除分支就看不到该分支的合并记录,但是可以用普通合并的方法保留这个合并的过程

就是在合并时用

git merge --no-ff dev
posted @ 2022-06-27 14:55  PHarr  阅读(50)  评论(0编辑  收藏  举报