码迷,mamicode.com
首页 > 其他好文 > 详细

github--git的使用

时间:2015-09-01 09:13:36      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:git   github   

个人github https://github.com/wuhaining/-wuhaining.github.io


操作系统:window7

学习参考:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

http://www.cnblogs.com/BeginMan/p/3591005.html

http://blog.csdn.net/wirelessqa/article/details/20152651



一、下载软件

https://git-for-windows.github.io/

技术分享



二、安装

技术分享

安装成功

技术分享


三、配置

1、打开“Git”->“Git Bash”

技术分享


2、配置使用用户

因为git是分布式版本控制系统,所以每个机器都必须自报家门:名字和email

在命令行中输入

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
技术分享
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。


3、创建版本库

版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。


(1)、进入一个目录

技术分享

ls命令---列出所有的目录

pwd命令----显示当前路径

(2)、创建一个空目录myGit

使用命令 mkdir

技术分享

注:如果你使用windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不含中文。


(3)、把这个目录变成git可以管理的仓库

使用命令 git init

技术分享

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

技术分享


(4)、把文件添加到版本库

编写一个test.txt文件

技术分享

一定要放在myGit目录下(子目录也行)。【这是一个git仓库


***********把一个文件放到git仓库需要两步**********

第一步:使用命令 git add,把文件添加到仓库。

技术分享

没有任何消息显示,说明添加成功。【Unix的哲学是“没有消息就是好消息”】


第二步:使用命令git commit,把文件提交到仓库。

技术分享

-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。


一次添加多个文件

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."



四、操作

1、git status命令查看结果

修改前

技术分享

修改后
技术分享


2、git diff命令查看具体修改了什么内容

技术分享


3、git log命令查看历史操作记录

技术分享

git log --pretty=oneline命令简化信息

技术分享


4、git reset命令版本回退

1)、HEAD

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

技术分享

2)、版本号

技术分享


5、git reflog命令用来记录你的每一次命令

技术分享


6、git checkout -- file在工作区的修改全部撤销。

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

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

技术分享

注:git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。


7、cat命令查看文件内容

技术分享


总结:

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

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


8、rm命令删除文件

rm----直接在文件管理器中删除文件,但是工作区和版本库会不一致。

技术分享

git rm---使用命令git rm删除文件,在使用命令git commit

技术分享


如果不小心删除了,可以重新从版本库中checkout一份下来。

使用命令git checkout -- file

技术分享



五、远程仓库

1、准备工作

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

技术分享

如下:

技术分享


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

技术分享

技术分享

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

技术分享

技术分享

点击“Add Key”,如下:

技术分享

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。

如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。



2、新建远程仓库

技术分享

技术分享


技术分享

3、关联远程库

命令参考

命令:

$ git remote add origin git@github.com:wuhaining/wuhaining.github.io.git

技术分享

查看

$git remote -v

技术分享

推送本地内容到远程库

技术分享

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

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


到了这里遇到一个问题?

技术分享


按照网上分析所说:

远程仓库中代码版本与本地不一致冲突导致的。

解决:

git pull

再自动merge或手动merge冲突

再次git push

技术分享

技术分享

这样就同步了

技术分享

总结:

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;



4、创建分支

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch ‘dev‘

技术分享

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

$ git branch dev
$ git checkout dev
Switched to branch ‘dev‘

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

技术分享

git branch命令会列出所有分支,当前分支前面会标一个*号。


测试

技术分享改变内容

提交

技术分享

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch ‘master‘
技术分享

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

技术分享

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 test.txt |    1 +
 1 file changed, 1 insertion(+)

技术分享

技术分享

git merge命令用于合并指定分支到当前分支。合并后,再查看test.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

当然,也不是每次合并都能Fast-forward,我们后面会将其他方式的合并。

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was fec145a).

技术分享

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

技术分享

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

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

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

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


个人github https://github.com/wuhaining/-wuhaining.github.io


版权声明:本文为博主原创文章,未经博主允许不得转载。

github--git的使用

标签:git   github   

原文地址:http://blog.csdn.net/qw765811529/article/details/48022447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!