git学习笔记

蓉城·飞将 蓉城·飞将     2022-10-24     398

关键词:

注:本文主要根据廖雪峰大神的Git教程学习而来,主要记录一些重要的命令等方便自己查找,大家对git感兴趣可以直接去Git教程学习。
 
简介:Git是目前世界上最先进的分布式版本控制系统(没有之一)。
创始人:林纳斯·托瓦兹(Linus Torvalds)(传奇人物,linux创始人,为了方便管理linux的代码,两周内自己用C写出了Git,一个月时Linux系统的源码已经由Git管理了)
集中式vs分布式
  集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
  分布式版本控制系统每个人的电脑上都是一个完整的版本库,在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
 
Git安装(Windows)
  从Git官网下载:https://git-scm.com/downloads,然后按照默认选项安装即可。
  安装完后需要配置:
  $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
  注意:用了global参数,表示你这台机器上所有的Git仓库都会使用这个配置。
 
创建版本库
  初始化git仓库:git init
  添加文件:git add <file>
  提交修改:git commit -m "xxx"
 
时光穿梭机
  查看是否有文件被修改:git status
  查看修改的内容:git diff
 
  版本回退
  HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
  查看提交历史:git log
  查看命令历史(用于重返回退前版本):git reflog
 
  工作区与暂存区
  工作区(Working Directory):电脑里能看到的目录
  版本库(Repository):工作区中的隐藏目录 .git(不算工作区),其中包含暂存区(stage或index),还有自动创建的分支master,以及指向master的指针HEAD。
  把文件往git版本库添加时的两步:
  第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
  第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
 
  管理“修改”:
  为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。
 
  撤销修改:
  场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
  场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
  场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
 
  删除文件:
  命令git rm file用于删除文件
 
远程仓库:
  第1步:GitHub注册:https://github.com/
  第2步:创建ssh key:ssh-keygen -t rsa -C "youremail@example.com"
  第3步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,在Key文本框里粘贴id_rsa.pub文件的内容。
  GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
 
  添加远程库
  已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程关联:git remote add origin git@github.com:username/Project.git
  第一次推送:git push -u origin master
  第一次推送时加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
  正常推送:git push origin master
 
  从远程库克隆
  我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
  git clone git@github.com:username/Project.git
 
分支管理:
  创建与合并分支:
  查看分支:git branch
  创建分支:git branch <name>
  切换分支:git checkout <name>
  创建+切换分支:git checkout -b <name>
  合并某分支到当前分支:git merge <name>
  删除分支:git branch -d <name>
 
  解决冲突:
  冲突是两个已经提交的分支的相同文件相同位置的的不同操作进行了合并。为了尽量避免冲突需要养成修改文件前先merge master(或其他待提交的分支)到当前分支。  
  <<<<<<< HEAD
  Creating a new branch is quick simple.
  ======
  CreatinganewbranchisquickANDsimple.
  >>>>>> feature1
  解决办法:仔细对比取并集,尽量把所有不同的文件保留,共同的只留一份
  另外用git log --graph命令可以看到分支合并图
 
  分支管理策略:
  合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
 
  
  Bug分支:
  当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
 
  Feature分支:
  1、创建feature分支:git checkout -b feature-vulcan
  2、切回dev准备合并:git checkout dev
  3.1、合并然后删除:git merge <name> ;git branch -d <name>
  3.2、删掉功能:git branch -d feature-vulcan
 
  多人协作:
  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
  如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
 
标签管理:
  创建标签:
  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
  • 命令git tag可以查看所有标签。
 
  操作标签:
  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

git学习笔记1

git学习笔记Git配置查看系统configgitconfig--system--list  查看当前用户(global)配置gitconfig--global--list设置用户名与邮箱(必要)通过文件配置文件通过命名配置gitconfig--globaluser.name“lenyuluo”#名称gitconfig--globaluser 查看详情

git学习笔记

说明:学习使用git过程中,把一些关键命令进行汇总记录,只是作为个人记录使用,不保证准确性,仅供参考。 一、Git简介Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 二、Git... 查看详情

git学习笔记

前记:工作区:开发文件存放的目录暂存区:.git文件夹中,gitadd添加的文件存放目录版本库:gitcommit提交后文件进入版本库。一、创建本地仓库,在/d/Projects/git目录下创建仓库。[email protected]MINGW64/d/Projects/git$gitinitInitializedem... 查看详情

git学习笔记

 //学习笔记来源于廖雪峰的Git教程Git是分布式版本控制系统,集中式版本控制系统,版本库是集中存放在中央服务器,工作时是用的个人电脑,其最大的缺陷是必须联网才能工作。安装UbuntuLinux/Debian命令:sudoapt-getinstallgitLinu... 查看详情

git学习笔记

1、安装Git:在linux下安装:yuminstallgit其他系统安装在这里略去~~~安装完成后,需要设置一下,在命令行输入以下命令:[[email protected]~]#gitconfig--globaluser.name"yourname"[[email protected]~]#gitconfig--globaluser.email"youremail"注意git 查看详情

git学习笔记

注:本文主要根据廖雪峰大神的Git教程学习而来,主要记录一些重要的命令等方便自己查找,大家对git感兴趣可以直接去Git教程学习。 简介:Git是目前世界上最先进的分布式版本控制系统(没有之一)。创始人:林纳斯·托... 查看详情

git学习笔记

Git学习笔记之前一直使用的是sourcetree和github工具来进行项目代码管理,没有尝试过使用Git来手动管理代码,就想学一学。在网上找了廖雪峰老师的教程跟着走了一遍,跟Atom和IDEA结合使用了一下,感觉能够正常完成自己的的代码... 查看详情

git学习笔记

1、Git的介绍及安装Git:全宇宙最牛的分布式版本控制软件,Git是目前世界上最先进的分布式版本控制系统#CentOS7下git的安装[[email protected] ~]# yum -y install git#设置git账号信息[[email protected] ~]# git ... 查看详情

git学习笔记

一、git安装配置https://git-for-windows.github.io一路默认,安装完成后在GitBash中运行1$gitconfig--globaluser.name"YourName"2$gitconfig--globaluser.email"[email protected]"注意gitconfig命令的--global参数,用了这个参数,表示你这台机器上所有的Git 查看详情

git学习笔记——git安装

Git是目前世界上最先进的分布式版本控制系统(没有之一)。在Linux上安装Git首先,你可以试着输入git,看看系统有没有安装Git:$gitTheprogram‘git‘iscurrentlynotinstalled.Youcaninstallitbytyping:sudoapt-getinstallgit像上面的命令,有很多Linux会... 查看详情

git学习笔记

gitconfig--globaluser.name"youname"  #设置用户名gitconfig--globaluser.email"youemail" #设置用户邮箱gitconfig--globalcolor.uitrue #设置git适当地显示不同颜色gitconfig--globalalias.ststatus #为status命令 查看详情

git学习笔记5

1.从远程库克隆到本地库1.1新建一个远程库gitskills注意勾选该选项,它为我们创建一个README.md文件1.2  查看详情

git学习笔记分支管理

学习廖雪峰老师的Git教程的笔记,以供自己以后复习查看。★★★★★创建、合并、删除分支。   ★创建分支             gitbranchbranchName--------创建分支     查看详情

git学习笔记

在廖雪峰老师的官网上学习所得,主要是留给自己使用,想看详细内容请移步:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001.git安装后所需进行的配置$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.email"[ 查看详情

git学习笔记

1,gitinit初始化  E:MyProject>gitinit  InitializedemptyGitrepositoryinE:/MyProject/.git/2,gitadd添加文件到暂存区  E:MyProject>gitaddREADME.md3,gitcommit-m"备注"提交到仓库  E:MyProject>gitcommit-m"addareadmef 查看详情

git学习笔记

gitinit #把这个目录变成Git可以管理的仓库gitaddreadme.txt  #把文件添加到git仓库gitcommit-m‘wroteareadmefile‘ #告诉git把文件提交到仓库,-m 后面输入的是本次提交的说明gitstatus #查看当前仓库的状态,有什么文件... 查看详情

markdown学习git分支笔记(代码片段)

查看详情

git学习笔记

提交1.提交当前工作空间的修改内容git add.2.提交当前工作空间的修改内容gitcommit-m"备注"3.将本地commit的代码更新到远程版本库中3.1.gitpushoriginmaster 3.2.gitpushoriginmaster-f 强制提交-拉取gitpulloriginmaster  查看详情