github应用

3 篇文章 0 订阅

github

本人windows安装msysgit。在开始菜单里找到“Git”->“Git Bash”,弹出一个类似命令行窗口的东西,就说明Git安装成功!

第一步:去github注册账户
这里写图片描述

第二步:下载msysgit反正我的水平只能用这个,安装完成后右键应该就能看到了。点击打开git bash here

这里写图片描述

这货怎么用呢!通过输入命令来操作。例如:首先建个文件夹(这个用来当你的仓库),在文件夹内右键打开git bash here 输入 git init 这样就会生成一个.git的隐藏文件。你可以在电脑里设置显示隐藏文件,就可以看到它了。

这里写图片描述

"配置:用户名和邮箱"

$ git config --global user.name "Your Name"  //双引号内是你的github用户名
$ git config --global user.email "email@example.com"  //双引号内是你的注册邮箱

第三步:进行配置,这里就开始用命令行了

主要流程

1. git init     
// 初始化git仓库(你想把哪个文件夹变成仓库就在那个文件夹下打开git bash here 输入git init)

2. ssh-keygen -t rsa -C "注册邮箱"      
// 获取ssh密钥,按默认走就行了,不要搞事情。

//下边是弹出内容的翻译。
Generating public/private rsa key pair.
//创建公共、私人的一对密匙

Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
//进入存储密匙的文件,(括号内是路径,找id_rsa.pub时就是该路径)

Created directory '/c/Users/Administrator/.ssh'.
//创建目录。

Enter passphrase (empty for no passphrase):
//设置id_rsa(私人密匙)密码(可以不设置)

Enter same passphrase again:
//再次输入

Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
//上述两个密匙都以及存储在上边的路径下。

The key fingerprint is:
//密匙的指纹图谱。
SHA256:MVvCBYfn5yFC1F/tECWJPlympRAdxbFuEGk7lTwaTyY liuys0902@gmail.com
The key’s randomart image is:
+---[RSA 2048]----+
|       .o++ooB=B.|
|       .oo+ E./o.|
|       .=o.*.^.+ |
|        .*o &o. .|
|        S. + +o  |
|            ..   |
|                 |
|                 |
|                 |
+----[SHA256]-----+

===============================
$ ssh -T git@github.com
//查看连接状态。

3. start ~/.ssh/id_rsa.pub          
// 获取key,打开.ssh下的id_rsa.pub文件,里面的是key的内容。也可以自己打开id_rsa.pub文件,复制里面的内容。这个文件路径:

// Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
// Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.

4.登录github打开github。找到setting------ SSH keys----- ADD SSH key  写好title。将SSH(这是公共的密匙id_rsa.pub.不要放私有的密匙id_rsa.)内容添加到key里面。

5.ssh -T git@github.com    
// 测试连接成功。You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

6.$ git remote add origin git@github.com:nanfei9330/learngit.git
 // 本地库关联远程库.

7.git remote -v  或 git remote   
// 查看远程库。叫origin

8.$ git push -u origin master
// 推送master分支的所有内容,第一次使用加上了-u参数,是推送内容并关联分支。

9.$ git push origin master
// 推送成功后远程和本地的内容一模一样,下次只要本地作了提交,就可以通过命令:把最新内容推送到Github

10.$ git pull origin master
// 取回远程主机某个分支的更新。

11.$ git clone git@github.com:nanfei9330/xx.git
// 从远程克隆一份到本地可以通过git clone。Git支持HTTPS和SSH协议,SSH速度更快。

二、命令操作

介绍:版本库:又名仓库,英文名repository。仓库名尽量用英文,不然可能会出问题

$ mkdir  fileName       
//mkdir  新建文件(fileName自己定)

$ cd  fileName     
//进入文件

$ pwd          
//pwd命令用于显示当前目录。

$ git init
//会生成一个.git。如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。如果还是不行,打开我的电脑,找到工具---文件夹选项---查看---显示隐藏文件。

// 新建一个.txt文件。如:readme.txt输入内容如下:
"git is a version control system
git is a free"

$ git add readme.txt  
// 添加到版本库的命令(add命令将工作区内容放到暂存区)。PS:没有任何显示代表添加成功。

$ git commit -m "wrote a readme file" 
 // 下面是成功时的显示。
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

// 可以add多次,commit一次提交多个。
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
// 提示:--m后面输入的是本次提交的说明,可以输入任意内容,(说说改了什么)这样你就能从历史记录里方便地找到改动记录。

$ git status
//当你修改txt文本后。用上边边命令,查看状态。
no changes added to commit (use "git add" and/or "git commit -a")
//提示修改了,但是没提交。


$ git diff readme.txt   
//diff (difference),该方式只能比较未提交(add)的。

$ git log 
//从下往上,最上边是最进一次改动,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

$ git reset --hard HEAD^
HEAD is now at ea34578 add distributed
//Git必须知道当前版本是哪个版本,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,100个写成HEAD~100。我们要把当前版本“append GPL”回退到上一个版本“add distributed”。

$ cat readme.txt
//还可以继续回退到上一个版本,不过且慢,让我们用git log再看看现在版本库的状态。没有了最新的版本了。只要上面的命令行窗口还没有被关掉,你就可以顺着往上找,找到那个最新版的commit的id,于是就可以指定回到未来的某个版本。

$ git reset --hard id(前6位就差不多)
// 通过id查找版本。

$ git reflog
//如果关掉了电脑。之后又想改回去。git reflog用来记录你的每一次命令。

$ git checkout -- readme.txt  
//就是让这个文件回到最近一次git commit或git add时的状态。
//一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。
//一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

$ git reset HEAD readme.txt。
//Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。



$ rm test.txt
//一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了。
//命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本。

// 分支=========================================================================

$ git checkout -b dev
//首先,我们创建dev分支,然后切换到dev分支:

$ git branch dev
$ git checkout dev
//git checkout命令加上-b参数表示创建并切换,相当于以上两条命令:


$ git branch
* dev
  master
//然后,用git branch命令查看当前分支:git branch命令会列出所有分支,当前分支前面会标一个*号。

git branch
//查看分支:

git branch <name>
//创建分支:

git checkout <name>
//切换分支:

git checkout -b <name>
//创建+切换分支:

git merge <name>
//合并某分支到当前分支:

git branch -d <name>
//删除分支:

注意:,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。如果要真正使用版本控制系统,就要以纯文本方式编写文件。因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,强烈建议使用标准的UTF-8编码,既没有冲突,又被所有平台所支持。

注意:git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

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

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

二、工作区和暂存区

工作区(Working Directory)
就是你在电脑里能看到的目录,自己创建的文件夹就是一个工作区。

这里写图片描述

上图来自于廖雪峰官网
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

三、注意问题

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.不能推送本地的空库(空文件夹)。

2.不能拉(pull)空的github仓库。

3.当远程库改动时,不能推送,需要先pull下来才能推送。

4.$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git

提示出错信息:fatal: remote origin already exists.

解决办法如下:
1、先输入$ git remote rm origin    
2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!
3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容,找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc。找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

5.如果输入$ ssh -T git@github.com

出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

解决办法如下:
    1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
    2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。
    3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

6.$ git push origin master

提示出错信息:error:failed to push som refs to .......

解决办法如下:
1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
2、再输入$ git push origin master
3、如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.
4、则需要重新输入$ git remote add origingit@github.com:djqiang/gitdemo.git 

7.qt1:git pull origin master出现下边。
出现// # Please enter a commit message to explain why this merge is necessary,
办法:输入:wq回车。 (w=>write  q=>quit)
gitconfig配置文件

配置相关信息:

    2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。
  $ git config --global user.name "John Doe"
  $ git config --global user.email johndoe@example.com

    2.2 你的编辑器(Your Editor) 

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:
  $ git config --global core.editor emac 
  
   2.3 检查你的设置(Checking Your Settings)

  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:
  $ git config --list 
  
   你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}: 
  $ git config user.name
  
   2.4 获取帮助(Getting help) 

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:
  $ git help <verb>
  $ git <verb> --help
  $ man git-<verb> 
  
  例如,你可以运行如下命令获取对config命令的手册页帮助:
  $ git help config

这里写图片描述

注意:这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added ‘github.com’ (RSA) to the list of known hosts.

命令


git add 'filename'      将文件复制到git暂存区
git commit -m 'message' 将暂存区文件提交到git仓库

git status          查看状态
git log         查看提交记录
git log --oneline       简化成1行
git log --graph     图形化显示(有分支时效果好)
git log --all       显示所有分支的日志记录

基本配置
git config --global user.email "you@example.com" 
git config --global user.name "Your Name"


git diff 'filename'     比较文件差异(工作区与暂存区)
git diff HEAD -- 'filename' 比较工作区与版本库

git checkout -- 'filename'  从暂存区签出覆盖工作区

git reset --hard commit-id  切换版本(重置工作区和暂存区)
git reflog          查看操作记录

git rm 'filename'       删除文件(提交后版本库中也会删除)
            但还可以用reset恢复出来

linux命令总结:  
mkdir              创建文件夹
clear              清屏
cd /               进入根目录
cd 目录名           进入某一个目录
pwd                显示当前所在目录
touch 文件名        创建一个文件
echo 文本值        (如果文本值中有双引号请使用转义字符) > 文件名  把文本写入到指定文件
rm 文件名           删除指定的文件        

//查看版本
git --version
//配置git
git config --global user.name "name"
git config --global user.email "email"  
//得到配置git信息
git config --get user.name
git config --get user.email 
//创建仓库
git init

//切换版本
git reset --hard HEAD^
git reset --hard commit-id

//删除文件
1.手动删除,或者通过系统命令rm删除
2.git rm 文件名           把文件从仓库里删除
3.再提交 git commit -m "提交时的备注信息"

// 删除github上的文件夹,而不删除本地文件,--cached不会把本地的删除,
1.git rm -r --cached cc/dd/zz 
2.git commit -m ""
3.git push

注:以上命令如果不熟悉,请使用
git help 命令名称     查看命令帮助    

git提交区分大小写设置:
找到.git/config 设置 ignorecase = false 。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值