git常用笔记整理

author author     2022-10-03     576

关键词:


一、安装Git

1.安装git,点击Git Bash进入命令行窗口页面
2.配置:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

二、创建版本库
1.创建一个空目录(mkdir <文件夹名>),可以通过pwd查看当前目录(注意:目录名最好不要有中文)
2.通过git init 把目录变成Git可以管理的仓库,执行该命令之后可以通过ls -ah查看到该目录下的隐藏文件.git
3.使用命令git add <文件名> 把该文件提交到stage(暂存区)
3.使用命令git commit <-m "XXX"> 把暂存区里的所有文件提交到Git版本库

三、掌握两命令
1.git status 查看工作区的状态
2.git diff 查看文件修改有哪些

四、版本回退
1.通过命令git log可以查看所有已经commit的日志,若信息太多可以在其后面加--pretty=oneline
2.在Git中HEAD表示当前版本
---上一个版本HEAD^
---上上一版本HEAD^^
---前100个版本HEAD~100
3.返回到上一个版本的命令git reset --hard HEAD^
4.回到未来的某版本git reset --hard 3628164 (后面的是一个commit_id)

五、工作区和暂存区
1.了解工作区和暂存区的模式

六、管理修改
1.命令git diff HEAD -- <文件名> 可以查看工作区和版本库里面最新版本的区别:

七、撤销修改
1.git checkout -- <文件名>,有以下两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
(前提是该readme.txt文件之前已经被add到stage过,当再在工作区里面修改后,如果想清楚上次修改,则可用此命令)

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
2.命令git reset HEAD -- <文件名> 可以把暂存区的修改撤销掉(unstage),重新放回工作区。

八、删除文件
1.直接删除工作区的文件,可以用rm <文件名>
2.需要删除git版本库中的文件,可用git rm <文件名> ,然后再执行git commit
3.注意:如果只是把工作区的文件删错了,而在git版本库里面还存在,可以直接用git checkout跟其文件名可找回;

九、远程仓库
1.由于需要和远程仓库是通过SSH来链接的,所以需要在本地使用$ ssh-keygen -t rsa -C "[email protected]"来生成一个签名
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,
不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
2.第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

十、添加远程库
1.首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
2.在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
3.通过$ git remote add origin [email protected]:path/repo-name.git将本地仓库与github关联
(如:$ git remote add origin [email protected]:michaelliao/learngit.git)
4.第一次推送时使用$ git push -u origin master把本地库的所有内容推送至远程
(注意:由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)

十一、从远程库克隆
1.首先创建一个远程库,然后通过git clone [email protected]:michaelliao/gitskills.git 克隆该项目
2.Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

十二、创建与合并分支
1.在版本回退可以看见有一条默认的时间线,该线是一条主分支即master,而HEAD其实是指向master,master指向提交的,所以HEAD指向的就是当前分反
2.每次在master上提交,该分支就会向前移动一步
3.当我们创建一个新分支(dev)时,此时该分支是指向master相同的提交,当切换为dev分支时,HEAD就指向dev
4.当在dev上提交时,dev就往前移动一步,而master指针不变
5.创建分支的命令$ git branch dev; 切换分支$ git checkout dev,前两命令可以通过$ git checkout -b dev 完成
6.查看分支$ git branch ,列出所有分支,当前分支前面会有一个*号
7.切换分支后修改内容并提交到该分支后,如果要把该提交合并到主分支,则需要先切换至主分支$ git checkout master
8.合并到master上$ git merge dev
9.删除原来的分支$ git branch -d dev

十三、解决冲突
1.在dev分支上进行开发,开发完成后提交到该分支上,此时切换至master分支,在主分支上也修改一内容提交,然后把dev分支上的提交合并到master上
则提示有冲突,此时我们只需要手动解决冲突然后重新提交即可

十四、分支管理策略
1.通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
2.如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
3.要禁用此上模式,则需要在合并时加上--no-ff
4.使用$ git merge --no-ff -m "merge with no-ff" dev 合并后,会创建一个新的commit,这里加上-m参数可以给出描述
5.通过以上方式合并后,我们再通过$ git log --graph --pretty=oneline --abbrev-commit可以查看到分支历史
总结:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

十五、Bug分支
1.如果目前在dev分支上做开发,现在有一bug需要急速解决并合并到master上,这时可以在master上新建一分支(名为bug-101),由于目前
dev上的内容还不能提交,所以需要通过git stash先储藏,储藏后通过git status可以查看到工作区是干净的
2.如果是在master上修复就在该分支上创建临时bug-101分支,修复完成后可以合并到master上并删除该bug分支
3.再回到dev上继续开发,可以通过$ git stash list查看工作现场
4.这里有两人种方法可以恢复:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
二是用git stash pop,恢复的同时把stash内容也删了:
5.当用第二种方式恢复后,再且git stash list时就查不到储藏的工作现场了
6.你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:$ git stash apply [email protected]{0}

十六、Feature分支
掌握两点:
1.开发一个新feature,最好新建一个分支。
2.如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。(注意:这里面用的是大D)

十七、多人协作
1.当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。
2.查看远程库的信息用$ git remote,可以查到当前的仓库名(或者可以用git remote -v查看详细信息)
3.推送分支$ git push origin <分支名> 比如$ git push origin master或$ git push origin dev
注意如下:
(1)master分支是主分支,因此要时刻与远程同步;
(2)dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
(3)bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
(4)feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
4.当其它人通过git clone命令克隆项目后,默认能看到的是master分支(可通过git branch查看),如果要在dev分支上开发,
就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:$ git checkout -b dev origin/dev,
当在dev上开必后push到远程。当自己也在该分支上修改后要提交到远程时,只需要$ git push origin dev就行了。
若在push时出现冲突就先pull下来解决冲突再推送,如果当发现pull失败是因为没有指定本地dev分支与远程origin/dev分支的链接的话(通过
提示信息no tracking information表明没链接上),可以通过git branch --set-upstream branch-name origin/branch-name来设置dev和origin/dev的链接。
最后链接成功后再pull若有冲突再解决再push就Ok

小结:

(1)查看远程库信息,使用git remote -v;

(2)本地新建的分支如果不推送到远程,对其他人就是不可见的;

(3)从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

(4)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

(5)建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

(6)从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

十八、标签管理
1.发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,
就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
2.Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,
创建和删除标签都是瞬间完成的。

十九、创建标签
1.决定要在哪个分支上打包,比如在master上打标签,可以直接$ git tag v1.0 表示在master分支的最新的一次提交上打标签为v1.0
2.命令git tag查看所有标签
3.默认标签是打在最新的commit上,如果想要打在之前某次的提交上,可以通过$ git tag v0.9 6224937 即可,后面的数字表示该次提交的密印,
当签名完成后可以通过git tag查看到刚才的标签
注意:当通过git tag时列出所有的标签不是按时间顺序列出,而是按字母排序的
4.通过git show <tagname>查看标签信息 如:$ git show v0.9
5.创建带有说明的标签,$ git tag -a v0.1 -m "version 0.1 released" 3628164 (用-a指定标签名,-m指定说明文字)

二十、操作标签
1.删除标签:$ git tag -d <tagname>
2.推送某个标签到远程:git push origin <tagname> 或推送全部尚未推送到远程的本地标签$ git push origin --tags
3.如果标签已经推送到远程若需要删除,则需要分两步,一是先删除本地的该标签,二是再删除远程的该标签,即$ git tag -d v0.9和$ git push origin :refs/tags/<tagname>

Git的官方网站:http://git-scm.com

 

廖雪峰git教程笔记与总结--git简介常用命令分支管理(代码片段)

...-廖雪峰的官方网站后的一些心得笔记,并且对git一些常用命令做一个整理总结。本文要点分为:1、Git简介;2、Git常用命令;3、Git分支管理。一、Git简介什么是Git?Git是目前世界上最先进的分布式版本控制系... 查看详情

git常用命令整理

git常用命令整理 查看当前分支:gitbranch切换分支:gitcheckout****(分支名)创建分支:gitbranch****(分支名)删除分支:gitbranch-D****(分支名)添加:gitadd*查看已添加我文件:gitstatus-s提交:gitcommit-m‘此处填修改描述‘查看更... 查看详情

git常用命令整理

clonegit项目  git下载的项目带git配置文件  git下载项目:  进入项目文件copy文件地址  gitclone项目的git路径(直接点击下载项目会丢失项目的git配置文件)  需要输入用户名密码之后才会执行更新所有分支  &nbs... 查看详情

git常用命令整理(转)

初始化配置#配置使用git仓库的人员姓名gitconfig--globaluser.name"YourNameComesHere"#配置使用git仓库的人员emailgitconfig--globaluser.email[email protected]#配置到缓存默认15分钟gitconfig--globalcredential.helpercache#修改缓存时间gitconfig- 查看详情

git常用命令整理

gitconfig--globaluser.name"xxx"#配置用户名gitconfig--globaluser.email"[email protected]"#配置邮件gitconfig--globalcolor.uitrue#gitstatus等命令自动着色gitconfig--globalcolor.statusautogitconfig--globalcolor.diffa 查看详情

js常用方法私房菜-笔记-持续整理中

 //记录一下前端开发中JS常用的方法等,持续收集整理中----------------------------------------------------------1//处理键盘事件禁止后退键(Backspace)密码或单行、多行文本框除外2functionbanBackSpace(e){3varev=e||window.event;//获取event对象4varob... 查看详情

git常用命令整理(代码片段)

YouhaveanemptyrepositoryTogetstartedyouwillneedtorunthesecommandsinyourterminal.ConfigureGitforthefirsttimegitconfig--globaluser.name"fhw"gitconfig--globaluser.email"[email protected]"Workingwith 查看详情

常用的git命令整理

...于没有时间总结,今天刚好有时间特来总结一下在工作中常用到的代码版本管理器Git。至于为什么要用Git?Git相比SVN有哪些好处?我就不多说了,前人已经总结的很好。今天主要介绍的是常用的Git命令。Git工作流一般来说,日常... 查看详情

git使用:安装,使用及常用命令整理

...安装与配置Ubuntu:git与github在ubuntu下的使用   常用git命令清单:  常用Git命令清单(阮一峰)配置命令:一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕 查看详情

git常用命令整理

安装好git之后首先配置 global是全局公用只需要首次配置$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.email"[email protected]"创建空目录,后gitinit初始化出现个隐藏文件gitaddtxt.txt添加仓库gitadd–all     查看详情

git常用命令整理

------创建库-------------------1.创建本地版本库gitinit2.添加文件gitaddfileName3.提交到库gitcommit-m"message"------版本控制,修改-------------------1.工作区修改回退gitcheckout--fileName2.已经add到暂存区的修改回退gitresetHEADfileName然后用checkout3 查看详情

整理下git常用命令

Git工作示意图一、新建代码库::在当前目录新建一个Git代码库gitinit::新建一个目录,将其初始化为Git代码库gitinit[project-name]::下载一个项目和它的整个代码历史gitclone[url]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(... 查看详情

js中常用的几种时间格式处理-笔记整理

 //此处整理点平时常用到的时间格式处理方法-------------------------------------------1//时间格式化函数2Date.prototype.format=function(format){3varo={4"M+":this.getMonth()+1,//month5"d+":this.getDate(),//day6"h+":this.getHo 查看详情

git常用命令行整理

1.创建分支dev  gitbranchdev2.切换到dev分支 gitcheckoutdev3.创建并切换本地分支,分支名为dev  gitcheckout-bdev4.查看本地所有分支  gitbranch5.查看远程所有分支  gitbranch-r6.查看所有分支,包括本地和远程&nbs... 查看详情

git常用知识点整理(代码片段)

Git学习Git工作机制Git和代码托管中心Git安装Git常用命令设置用户签名1)基本语法初始化本地库基本语法查看本地库状态再次查看(检测到未追踪的文件)添加暂存区将工作区的文件添加到暂存区查看状态(检测到... 查看详情

分布式版本控制系统git-----4.git常用命令整理

1. git init  初始化 git 目录   2. git add 添加文件      git add fileName      & 查看详情

菜鸟笔记之学习github

...是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用Git命令清单。几个专用名词的译名如下。Workspace:工作区Index/Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个Git代码 查看详情

git常用命令(自己总是忘记,整理在这里)

1.gitclone+SSH地址 2.gitremote3.gitremote-v4.gitpull5.gitpush6.gitlog查看更新日志7.gitcommit 8.gitadd9.提pr pullrequest的简称10.merge合代码11.develop分支,master分支  查看详情