github的简单使用说明

github简单使用说明

Git  PDF版本命令手册https://www.runoob.com/manual/github-git-cheat-sheet.pdf
Git 完整命令手册地址http://git-scm.com/docs
Git 各平台安装包下载地址为:http://git-scm.com/download
git 菜鸟教程:https://www.runoob.com/git/git-basic-operations.html

Linux 平台上安装
Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
各 Linux 系统可以使用其安装包管理工具(apt-get、yum 等)进行安装:
Ubuntu Git 安装命令为:

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

$ apt-get install git

$ git --version
git version 1.8.1.2

源码安装
我们也可以在官网下载源码包来安装,源码包下载地址:https://git-scm.com/download
(请使用最新源码包下载)

安装指定系统的依赖包:

########## Ubuntu ##########  安装指定系统的依赖包:
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev
########## Ubuntu ##########  解压安装下载的源码包:
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install 

配置个人的用户名称和电子邮件地址:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

加入环境变量:

[root@Git ~]# echo 'export PATH=$PATH:/usr/git/bin' >> /etc/profile
[root@Git ~]# source /etc/profile

基本概念:
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,
所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull 、git diff
Git 创建仓库
git init
Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。
在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。
使用方法

git init                        //使用当前目录作为Git仓库
git init newrepo                //使用我们指定目录作为Git仓库

git diff

git diff --cached              //显示暂存区与历史版本库的差异
git diff HEAD~2                //显示工作区与最新提交第二夫提交的差异
git diff HEAD~2 --a.txt        //显示工作区与最新提交第二父提交中a.txt文件差异
git diff –cachedHEAD~1         //显示暂存区与历史版本库最新提交第一父提交的差异
git diff HEAD HEAD~2           //显示HEAD指向的历史提交和其第二父提交之间的差异
git diff HEAD HEAD~2-- a.txt   //显示HEAD指向的历史提交和其第二父提交中a.txt之间的差异

git clone
克隆仓库的命令格式为:

git clone <repo>                  //从现有 Git 仓库中拷贝项目         
git clone <repo> <directory>      //克隆到指定的目录
/*参数说明:
	repo:Git 仓库。
	directory:本地目录。
*/

比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:

/*执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来
  的所有版本记录*/
$ git clone git://github.com/schacon/grit.git
/*自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:*/
$ git clone git://github.com/schacon/grit.git mygrit

Git基本操作:
workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库

/*创建仓库命令*/
git init                         //初始化仓库
git clone                        //拷贝一份远程仓库,也就是下载一个项目。

/*提交与修改:Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。*/
git add                          //	添加文件到仓库
git status                       //	查看仓库当前的状态,显示有变更的文件。
git diff                         // 比较文件的不同,即暂存区和工作区的差异。
git commit                       // 提交暂存区到本地仓库。
/*************************************************/
git reset                        // 回退版本。
git reset --hard head #当前版本
git reset --hard HEAD^ #回退到上一个版本
git reset --hard HEAD^^ #回退到上上一个版本
git reset --hard HEAD~3 #回退到往上3个版本
git reset --hard HEAD~10 #回退到往上10个版本
/*************************************************/
/*********************************************************************************/
**撤销commit操作**
git reset [--mixed/soft/hard] HEAD^   撤销上次的提交
    //如果想撤销N次commit,使用HEAD~N
     1--mixed   不删除工作空间改动代码,撤销commit,并且撤销git add .操作。
     			  这个为默认参数,git reset --mixed HEAD^ 和git reset HEAD^ 效果相同
    2--soft     不删除工作空间改动代码,撤销commit,不撤销git add .
    3--hard     删除工作空间改动代码,撤销commit,撤销git add . 
    			 注意完成这个操作后,就恢复到了上一次的commit状态
   
   Tips:如果只是想更改提交的注释信息,使用git commit --amend 即可进入vim编辑器修改,
   			不用撤销commit操作。如果在ubuntu下,无法使用:wq的方式保存退出,就用 
   				CTRL+S键    保存
   			  	CTRL+X键    退出
**回退到指定的历史版本** 			
 git log    获取历史提交的版本号     Tips:也可以在项目的.git/logs/refs/heads/master文件中查看操作日志
​
    git reset --hard e7a98b4eabc91afebd7e3f3d7c474276146c6c2f(版本号)    恢复到指定的历史版本
     
    //如果需要同步远程
    git push origin source -f    强制 push 更新远程分支
**撤销回退,回到未来版本**
    git reflog  查看命令历史,以便确定要回到未来的哪个版本
    git reset --hard 版本号

/*********************************************************************************/

git rm                           // 删除工作区文件。
git mv                           // 移动或重命名工作区文件。

/*提交日志/
git log                         // 	查看历史提交记录
git log --name-status  		//显示每次修改的文件列表及状态
git log --name-only    		//显示每次修改的文件列表
git log --stat         		//显示每次修改的文件列表及文件修改的统计
git log --graph             //以ASCII 字符串形式表示的分支及其分化衍合的情况
git whatchanged        		//显示每次修改的文件列表
git whatchanged --stat 		//显示每次修改的文件列表及文件修改的统计
git show                    //显示最后一次的文件改变的具体内容
git show [commit_id]                 //查看某次历史提交信息的完整信息
git show HEAD                        //查看HEAD标签当前指向的提交的完整信息
git show master                      //查看master分支最新一次提交的完整信息
git show master^/git show master~    //查看master分支最新一次提交的父提交的完整信息
git show master^2                    //查看master分支最新一次提交的第二个父提交(父提交的父提交)的完整信息

git blame <file>                // 	以列表形式查看指定文件的历史修改记录

/*远程操作*/
git remote                      // 远程仓库操作
git fetch                       // 从远程获取代码库
git pull                        // 下载远程代码并合并
git push                        // 上传远程代码并合并

Git分支管理:

/*当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支
  不需要多个目录。*/
git branch (branchname)         // 创建分支命令,没有参数时,git branch 会列出你在本地的分支。
git checkout (branchname)       // 切换分支命令
git merge                       // 合并分支命令:

手动创建分支

$ git branch testing
$ git branch
* master
  testing
/*example*/
$ ls
README
$ echo 'runoob.com' > test.txt
$ git add .
$ git commit -m 'add test.txt'
  [master 3e92c19] add test.txt
  1 file changed, 1 insertion(+)
  create mode 100644 test.txt
$ ls
  README        test.txt
$ git checkout testing
  Switched to branch 'testing'
$ ls
  README

也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。

/*我们创建了一个分支,在该分支的上移除了一些文件 test.txt,并添加了 runoob.php 文件,然后切换回我
  们的主分支,删除的 test.txt 文件又回来了,且新增加的 runoob.php 不存在主分支中。
  使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。*/
$ git checkout -b newtest
Switched to a new branch 'newtest'
$ git rm test.txt 
rm 'test.txt'
$ ls
README
$ touch runoob.php
$ git add .
$ git commit -am 'removed test.txt、add runoob.php'
[newtest c1501a2] removed test.txt、add runoob.php
 2 files changed, 1 deletion(-)
 create mode 100644 runoob.php
 delete mode 100644 test.txt
$ ls
README        runoob.php
$ git checkout master
Switched to branch 'master'
$ ls
README        test.txt

删除分支、分支合并

git branch -d (branchname)    // 删除分支
git merge                     // 分支合并
/*example :删除分支*/
//xxx 代表路径
Administrator@xxx (master)
$ git branch
* master
  testing
Administrator@xxx (master)         
$ git branch -d testing
Deleted branch testing (was b8a55ba).
Administrator@xxx (master)
$ git branch
* master
* /*example :合并分支*/
Administrator@xxx (master)
$ git branch
* master
  testing
Administrator@xxx (master)
$ git merge testing
Updating b8a55ba..8e5b1fd
Fast-forward
 test01.c   | 2 +-
 test03.txt | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 test03.txt
Administrator@xxx (master)
$ ls
Makefile  test01.c  test01.h  test02.c  test02.h  test03.txt

合并冲突
合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。需要手动去修改它,修改完成后,可以用 git add 要告诉 Git 文件冲突已经解决。

$ vim runoob.php 
$ cat runoob.php
<?php
echo 1;
echo 'runoob';
?>
$ git diff
diff --cc runoob.php
index ac60739,b63d7d7..0000000
--- a/runoob.php
+++ b/runoob.php
@@@ -1,3 -1,3 +1,4 @@@
  <?php
 +echo 1;
+ echo 'runoob';
  ?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值