美文网首页
Git基本操作

Git基本操作

作者: 云呆呆 | 来源:发表于2018-05-16 07:39 被阅读16次

安装Git:

$ git config --global user.name "Your Name"

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

git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。

安装版本库:

$ mkdir learngit //当前位置创建learngit文件夹

$ cd learngit //跳转到learngit

$ pwd //显示当前目录

$ git init //把这个目录变成Git可以管理的仓库

ls -ah//用来打印出当前目录的清单,-a包含以.开头的隐含文件,-h列出文件大小

把文件添加到版本库:

将textname.TXT文件放入learngit文件

$ git add textname.txt //添加到暂存库

$ git commit -m "note"//-m 后面输入的是本次提交的说明

时光机穿梭:

$ git status //查看仓库当前的状态

$ git diff readme.txt //查看仓库的变化 

版本回退:

$ git log //版本历史记录,所有的

$ git log --pretty=oneline //数字为版本号

$ git reset --hard HEAD~n //回退n个版本,或者HEAD^...

$ git reset --hard number //回到未来的某个版本号number

$ cat readme.txt//查看当前版本的内容

$ git reflog//记录你的每一次命令

版本库=stage(暂存区)+master(分支)

仓库=工作区

Untrack files://某个文件没有被添加过

管理修改:

git diff HEAD -- readme.txt//可以查看工作区和版本库里面最新版本的区别

撤销修改:

$ git checkout -- readme.txt//撤销工作区的全部修改。用版本库里的最新版本替换工作区的版本,“一键还原”。

$ git reset HEAD file//可以把暂存区的修改撤销掉(unstage),重新放回工作区。

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

删除文件:

$ rm test.txt //删除仓库文件

$ git rm test.txt

$ git commit -m "remove test.txt"//删除版本库文件

远程仓库:

第1步:$ ssh-keygen -t rsa -C "youremail@example.com"//创建SSH Key

可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

添加远程库:

首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

在本地的learngit仓库下运行命令(关联):$ git remote add origin git@github.com:yourgithubid/learngit.git

添加后,远程库的名字就是origin,这是Git默认的叫法

下一步,就可以把本地库的所有内容推送到远程库上:$ git push -u origin master//第一次使用将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

之后就用:$ git push origin master

SSH警告:

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

这个警告只会出现一次,后面的操作就不会有任何警告了。

从远程库克隆:

首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:

我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:

下一步是用命令git clone克隆一个本地库:$ git clone git@github.com:yourgithubid/gitskills.git

$ cd gitskills //进入子目录

$ ls //显示

分支管理:

创建与合并分支:

$ git checkout -b dev //创建dev分支,并切换到dev分支

$ git branch //列出所有分支,当前分支前面会标一个*号

$ git checkout master //切换到master分支

$ git merge dev //合并指定分支到当前分支,Fast forward

$ git branch -d dev //删除dev分支,-D强制删除

$ git log --graph --pretty=oneline --abbrev-commit //查看分支合并情况

$ vi text.txt //进入某个文件

分支管理策略:

$ git merge --no-ff -m "merge with no-ff" dev //普通合并,--no-ff参数,表示禁用Fast forward,(可查看历史)并且提交了一个commit

Bug分支:

$ git stash //把当前工作现场(工作区)“储藏”起来

$ git stash list //查看工作现场

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

$ git stash apply stash@{0} //恢复到制定stash

多人合作:

推送分支:

$ git remote //查看远程库 -v表示详细信息

$ git push origin master //推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

抓取分支:

(在另一台电脑(注意要把SSH Key添加到GitHub)或者同一台电脑的另一个目录下克隆)

默认情况下,你的小伙伴只能看到本地的master分支

$ git clone git@github.com:YourID/learngit.git

现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支: 

$ git checkout -b dev origin/dev

推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:

$ git branch --set-upstream dev origin/dev //本地dev分支与远程origin/dev分支的链接

$ git pull

创建标签:(只存储在本地,不会自动推送到远程)

$ git tag v1.0 //切换到需要打标签的分支上后,默认标签是打在最新提交的commit上的。

$ git tag //查看所有标签

$ git log --pretty=oneline --abbrev-commit

$ git tag v0.9 commitid //找到历史提交的commit id,然后打上

标签不是按时间顺序列出,而是按字母排序的

$ git show v0.9 //查看标签信息

$ git tag -a v0.1 -m "version 0.1 released" commitid //创建带有说明的标签,用-a指定标签名,-m指定说明文字

$ git tag -s v0.2 -m "signed version 0.2 released" commit //通过-s用私钥签名一个标签:签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错

操作标签:

$ git tag -d v0.1 //删除标签

$ git push origin v1.0 //送某个标签到远程

$ git push origin --tags //推送全部

如果标签已经推送到远程,先从本地删除:$ git tag -d v0.9

从远程删除。删除命令也是push:$ git push origin :refs/tags/v0.9

相关文章

  • Git命令梳理

    基本操作 git init git add . git stauts git commit -m '描述' git...

  • git基本操作 梳理

    git操作梳理一、git基本操作1.创建版本仓库 git init(.git目录)2.版本创建 git add ...

  • GitFlow

    假设你已经熟悉git的基本操作:如不熟悉请参考:GitBook 这里简单回顾一下git基本操作 提交基本操作 把...

  • git基本操作二:git的基本操作

    本文会带各种命令后的图,与大部分文章区分,只有理论,没有实践 初始化本地库 命令:git init 效果: ,gi...

  • Git Cocopods 基本操作

    Git 操作 基本操作 查看当前git状态git status 添加代码到暂缓区git add . 提交代码到本地...

  • git常用操作 🎀

    git常用操作 ? 基本知识 查看git信息 修改git配置 提交类操作 分支类操作 创建分支 查看分支 修改分支...

  • git基本操作

    重要概念 已提交(mommitted)该文件已经被安全地保存在本地数据库中了 已修改(modified)修改了某个...

  • Git基本操作

    前言 Git相关操作总结 2018-7-14, 联创团队分享 文中部分图片见文末参考链接 正文 一. 基本概念 版...

  • git基本操作

    0x001 git基本命令 0x002 远程仓库配置(coding.net) 使用命令ssh-keygen -t ...

  • Git基本操作

    创建新的git仓库 git init # 初始化 git add readme.md # 添加新文件 git co...

网友评论

      本文标题:Git基本操作

      本文链接:https://www.haomeiwen.com/subject/bdvudftx.html