git基本操作

git基本命令

初始化

git init

把文件添加到仓库

git add 文件名

把文件提交到仓库

git commit -m "备注信息"

查看仓库当前状态

git status

查看文件发生的变化

git diff 文件名

查看日志

git log

注意:在commit一行上看到一大串的 93753… 的数字commit id(版本号)用处后面讲解,是十六进制的表示方法,这是因为Git是分布式的版本控制系统,所以每一个人的ID 肯定不一样,就像身份一样。

简化参数

git log --pretty=oneline

版本回退

git reset --hard HEAD^

假如当前最新版本为第三次提交

GIt 用 HEAD 表示当前版本,也就是 “third edit ,add three” 

那上一个版本的表示方法是:HEAD^ (也就是 “second edit , add two”)

再上一个版本就是 :HEAD^^ (也就是 “first edit”)

以此类推,前1000次的应该有1000个 “^”,放心,GIt绝对是人性化的,它可以表示为:HEAD~1000

注意:回退到第二版本后,此时如果查看日志,只剩下两个

撤回到原版本

需要知道你的版本号(commit id) ,但是我们在上面的日志中已经找不到,最近的一个 commit id 了怎么办?

git reflog记录每一次命令,可以把 commit id 找回来

git reset --hard 版本号 回到指定版本号

撤销修改

撤回工作区的修改

git checkout --文件名 丢弃工作区的修改

git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
注意:git checkout – textfile.txt 的意思是吧textfile.txt 文件的修改全部撤销,有两种情况:

第一种:从textfile.txt编辑后就没有被git add(添加到暂存区) 过,现在撤销就和版本库一模一样。

第二种:textfile.txt 修改后被添加到暂存区,又做了修改,现在撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

撤回暂存区的修改

上面那个是在textfile.txt 修改后,没有添加到暂存区,但是如果修改完还添加到(git add)暂存区怎么办 ?

git reset HEAD 文件名 把暂存区的修改撤销掉,重新放回工作区

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

现在暂存器(stage)是干净的,但是工作区有修改。

还记得我们如何把工作区还原到最近一次吗?

使用命令:git checkout – file

删除文件

rm file 或者直接在文件管理器中把文件删了

那么现在版本库和工作区不一致,那么现在有连个选择:

一是确实要从版本库中删除该文件,那么

git rm 文件名 删掉,并且要git commit

现在文件从版本库删除了,工作区同样也删除了。

二是删错了,因为版本库里还有呢,所以可以很轻松的把误删的文件恢复到最新版本

使用命令:git checkout --文件名

注意:git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

总结:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

远程仓库(Github)

新建远程库

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以在Github官网进行设置

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key:

使用命令:

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

最后,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人 。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

在这里插入图片描述

添加远程库

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

在这里插入图片描述
在仓库名中填入 Gitfile 然后点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

在这里插入图片描述

创建成功后,Gitfile仓库是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的Github仓库下运行命令 :

git remote add origin https://github.com/xxxx/Gitfile.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

使用命令: git push -u origin master

实际上是把当前分支master推送到远程Github。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后就可以在github 新建的仓库中看到,和本地一样的文件。

从现在起,只要本地做了提交(git commit ) 就可以通过命令:

git push origin master

推送到远程github的仓库(把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!)。

克隆远程库

我们前面所讲的是。我们在本地先建立一个本地库,然后在GIthub建立一个远程库,然后把本地库的分支master 和远程库的分支master关联起来,以后如果想同步两个库只需要通过命令:git push origin master ,即可完成同步 。

    现在假设我们是从头开始,我们先创建远程库,然后从远程库(Github)中同步到本地,完成同步。

第一步:登陆GIthub ,建立一个新的库命名为:Githubfile

注意Git仓库地址:
你也许还注意到,GitHub给出的地址不止一个,还可以用git@github.com:zGuangYuan/Githubfile.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

第二步:现在我们已经把远程库创建好了,我们准备把它克隆到本地:

使用命令:git clone 地址

服务器搭建远程仓库

远程服务器端:

  • 创建裸仓库
$git init --bare test.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。

本地:

  • 到需要提交的文件的目录里面,初始化

    git init

  • 添加项目

    git add -a

  • 提交项目

    git commit -m '说明'

  • 推送到远程服务器

    git push ssh://qixiaoting@192.168.100.239/仓库地址/test.git master

远程服务器:

  • 克隆文件

    到需要克隆文件的目录里面

    git clone ssh://qixiaoting@192.168.100.239/仓库地址/test.git

    或者直接克隆仓库地址(如果在一台服务器上的话)

    git clone 仓库地址/test.git

  • 如果要修改文件,要再次提交

    git commit -am '修改说明'

  • 然后推送到服务器仓库中

    git push ssh://qixiaoting@192.168.100.230/路径/test.git master

本地:

  • 更新代码:

    git pull ssh://qixiaoting@192.168.100.239/仓库地址/test.git

Git ssh免密登录

ssh-copy-id user@host

分支管理

待续…

标签管理

待续…

git基本常用命令总结

   mkdir:         XX (创建一个空目录 XX指目录名)

  pwd:          显示当前目录的路径。

  git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

  git add XX       把xx文件添加到暂存区去。

  git commit –m “XX”  提交文件 –m 后面的是注释。

  git status        查看仓库状态

  git diff  XX      查看XX文件修改了那些内容

  git log          查看历史记录

  git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本

  (如果想回退到100个版本,使用git reset –hard HEAD~100 )

  cat XX         查看XX文件内容

  git reflog       查看历史记录的版本号id

  git checkout -- XX  把XX文件在工作区的修改全部撤销。

  git rm XX          删除XX文件

  git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

  git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

  git clone https://github.com/tugenhua0707/testgit  从远程库中克隆

  git checkout –b dev  创建dev分支 并切换到dev分支上

  git branch  查看当前所有的分支

  git checkout master 切换回master分支

  git merge dev    在当前的分支上合并dev分支

  git branch –d dev 删除dev分支

  git branch name  创建分支

  git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

  git stash list 查看所有被隐藏的文件列表

  git stash apply 恢复被隐藏的文件,但是内容不删除

  git stash drop 删除文件

  git stash pop 恢复文件的同时 也删除文件

  git remote 查看远程库的信息

  git remote –v 查看远程库的详细信息

  git push origin master  Git会把master分支推送到远程库对应的远程分支上
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值