git笔记(一)

阮小七
• 阅读 1903

常用命令行

git笔记(一)

一、设置git客户端的名字邮箱

user.name和user.email是git客户端的两个变量,简而言之就是记录每次本地文件commit的是谁做的,GitHub是通过邮箱来记录贡献的,一般可以用以下命令行进行全局配置,如果你会用不同身份在不同项目上进行提交,则可以不加 -g 进行本地配置

git config -g user.name "name"
git config -g user.email "email@mail.com"

运行了以上命令行后,.git文件夹里的config文件会多一个关于user的配置,即name 和 email

[user]
    name = 你的name
    email = 你的email

二、工作区和版本库

工作区:电脑上看见的目录或文件
版本库:即文件管理区,在这里进行文件版本管理,.git目录为其配置文件(其中有stage暂存区,git为我们创建的第一分支master,指向master的指针HEAD)

1、创建仓库并提到版本库

git init //把这个目录变成git可以管理的仓库
git add hi.txt //添加到工作区
git commit -m //提交到本地版本库(暂存区)

2、版本回退
版本回退可以先查看提交的版本号,然后回退到该版本号指定的版本

  • 查看提交和回退信息:

    git reflog  //查看所有分支的提交和回退信息
    git log //查看所以分支的提交信息,--pretty=oneline(横排显示,只留下版本号和提交注释)
    
  • 版本回退:版本回退的原理其实是重置HEAD指针指向,将HEAD指向制定commit id就可以将文件版本改为该次提交的版本,同理可以用reset命令取消版本回退。
  • 其中-hard撤销工作区,暂存区,本地仓库的内容到指定节点,-soft只撤销本地仓库,工作区和暂存区不变。

    git reset –hard HEAD^  //回退上一个版本
    git reset –hard HEAD^^  //回退上上个版本
    git reset –hard HEAD~100 //回退前一百个版本
    git reset -hard 版本号 //回退到指定版本号
    
    git reset –soft HEAD^  //回退上一个版本
    git reset –soft HEAD^^  //回退上上个版本
    git reset –soft HEAD~100 //回退前一百个版本
    git reset -soft 版本号 //回退到指定版本号
    
    

3、撤销工作区修改
放弃某文件在工作区的修改,恢复为上一次添加到版本库的版本

git checkout -- 文件名 //撤销该文件名在工作区还没有存入版本库的修改

三、分支操作

分支管理策略:一般在新建的dev分支上干活,分支代码稳定后发布到master主分支上
git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式
1、demo:创建一个dev分支并merge到master的步骤:

  • 创建并切换到分支dev:git checkout -b dev
  • 修改readme.txt内容。
  • 将修改的内容添加到暂存区:git add .git commit -m "提交注释"
  • 切换回主分支(master):git checkout master
  • 合并dev分支git merge --no-ff -m "注释" dev

常用命令行:

git checkout -b dev //创建+切换分支dev
git checkout dev //切换分支
git branch dev //创建分支
git branch -d dev //删除分支
git branch //查看分支,会列出所有的分支,当前分支前面会添加一个星号

git merge dev //将dev分支合并到当前分支
git merge --no-ff -m "合并注释" 分支名 
git log //查看分支合并情况

2、demo:创建一个修复bug的分支
git stash 把当前工作现场“储藏”起来
git checkout master 切换到需要修复bug的分支

git checkout -b issue-101 创建临时分支,修复bug101,提交
git add readme.txt
git commit -m "fix bug 101"

git checkout master返回分支,合并bug修复分支,删除bug修复分支
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101

git checkout dev返回工作的分支
git status 工作区是干净的
git stash list 查看隐藏的列表

恢复隐藏内容:
git stash apply 恢复
git stash drop 删除

git stash pop 恢复并删除
git stash apply stash@{0} 多次隐藏,恢复指定stash

3、demo:创建一个添加新功能的feature分支
每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支

  • git checkout -b feature-new
  • git add hi.txt
  • git commit -m "add feature new"
  • git checkout master
  • git merge --no-ff -m "merged feature-new" feature-new
  • git branch -d feature-new
  • git branch -D feature-new//没合并之前强行删除

四、远程仓库

1.1、SSH验证

很多时候需要将本地仓库传输到远程仓库,经常会需要ssh验证,所以我们先要创建ssh证书以获得上传到github的权限,即先本地创建证书,将私钥存在本地,公钥存在github上,即可以在传输时验证身份证明本地是被允许传输数据到远端的。

  • 创建ssh证书公钥私钥:
ssh-keygen -t rsa -C "邮箱地址"

运行后,能在C:\Users\.ssh中找到公钥和私钥,公钥存在github,私钥保存在本地

  • GitHub创建ssh keys:

登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容

  • 测试你的ssh-key
ssh -T git@github.com //测试你的ssh-key

1.2、绕开ssh验证

如果我们用的https而不是git开头的远端路径,会出现没有权限的情况,可以用以下命令行绕开ssl验证,然后每次push需要输入用户名密码即可

git config --global http.sslVerify false 

也可以在config文件的url中添加用户名密码。

2、本地仓库和GitHub仓库建立连接

git remote add origin git@github.com:地址.git

3、本地分支与GitHub仓库的分支建立连接
推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:git push origin master

git branch --set-upstream dev origin/dev //本地dev与远程仓库dev建立连接
git push -u origin master //本地master和远端master建立连接且上传

4、本地分支推送到远程仓库分支

git push origin master

5、克隆远程仓库

git clone git@github.com:地址 //在需要克隆库的文件夹下执行

6、如果远程仓库有变化需要先pull

git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin master:brantest  //将远程主机origin的master分支拉取过来,与本地的brantest分支合并。
git pull origin master  //其中冒号后面的可以省略,表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并

git fetch origin master:brantest  //其上命令行等同于用fetch和merge
git merge brantest

五、多人协作

从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
常用命令行:

git remote add origin git@github.com:地址.git \\添加远程库
git remote \\查看远程库信息
git remote -v \\显示更详细的信息,显示了可以抓取和推送的origin的地址
git push origin master(分支名)\\本地分支master推送到对应的远程分支上去
git push origin dev

注:

  • git pull 如果push不成功,你的队友已经修改代码,需要先pull下来手动消除冲突然后再push
  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发
  • git checkout -b dev origin/dev创建远程origin的dev分支到本地
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
ubuntu下sublime3无法输入中文
一、从命令行启动1.git clone https://github.com/lyfeyaj/sublimetextimfix.git2.cd ~/sublimetextimfix 这里进入的从github下载下来的文件夹,我直接在主目录clone的,所以直接进入~/sublimete
Stella981 Stella981
3年前
Git生成SSH公钥
一、设置Git全局用户名和邮箱配置gitconfigglobaluser.name"huhansan"gitconfigglobaluser.email"huhansan@qq.com"如果有对设置Git信息有疑惑的可以看这边篇文章:为什么要设置Git的邮箱和用户名(https://my.oschin
Stella981 Stella981
3年前
Git Learning3 Eclipse Tools
1.创建Git操作:工程右键TeamShareProjectGit完成创建2.全局设置:WindowPreferenceGitConfigurationRespositorySettingsAddEntry增加一个user.name和user.email的Entry3.配置ignore:https://g
Stella981 Stella981
3年前
Git 一般性操作
git全局设定gitconfigglobaluser.name“码云账号”gitconfigglobaluser.email“码云注册邮箱”git定位文件夹cd进入到需要同步的文件夹线面gitinit上传到gitgitadd.gitcommitm'
Stella981 Stella981
3年前
Git的初始化配置和基本命令的使用
首先说下什么是Git,很多人会把Git和GitHub搞混淆。Git是一个版本控制的工具;GitHub是一个网站,只不过是基于Git的。安装Git就不累述了,自行百度。这里主要说下,初次运行Git的配置和Git基本命令的使用。初次运行Git的配置(windows系统):打开Git命令行输入以下命令:gitconfigglobaluser.
Stella981 Stella981
3年前
Git基本配置
Git配置安装yuminstallgit全局配置设置提交用户名gitconfigglobaluser.name"leoxu"设置提交邮箱gitconfiggl
Stella981 Stella981
3年前
Git 常用语句
题记:自己工作当做经常使用的一些git命令行,在此记录;1)首次建立项目;gitpushoriginmaster报错:error:srcrefspecmasterdoesnotmatchany.error:failedtopushsomerefsto‘git@192.168.10.120:iartev/wec
Stella981 Stella981
3年前
Git 实战教程
1.Git配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用gitconfig命令进行配置:​$gitconfigglobaluser.name"ilimhumar"$gitconfigglobal
Stella981 Stella981
3年前
Git使用教程
Windows系统下GIT的使用1:Git简介:1.博客园上面找到的语言:Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及
铁扇公主 铁扇公主
2年前
macos上强大的Git客户端分享~
GitKraken是一款强大的Git客户端,可以帮助开发者更轻松地管理和协作Git仓库。以下是GitKraken的主要特点:1.直观易用的界面:GitKraken的界面非常直观,使用起来非常容易上手。您可以通过拖放操作来完成Git操作,或者使用快捷键来更快
燕青 燕青
1年前
Macos强大的Git客户端:GitKraken for Mac 中文版
是一款强大的Git客户端,可以帮助开发者更轻松地管理和协作Git仓库。以下是GitKraken的主要特点:1.直观易用的界面:GitKraken的界面非常直观,使用起来非常容易上手。您可以通过拖放操作来完成Git操作,或者使用快捷键来更快地完成任务。2.支