关于Git和Github的学习:[Git]从Git到Github的上手指南
>【一个一直没注意到的问题】
因为一些原因,我需要在windows上进行Git仓的管理。
之前一直是在Linux上跑Git Bash,换了个环境,遇到了一个迷之问题。就是所有提交的文档首部的首字母总会迷之变成“?”或者其他什么东西。
我查了下,据说是微软自带的文本编辑器在每个UFT-8文件前加了个0xefbbbf(详见下面引用)。
还是很惭愧的,用了这么多年电脑,第一次察觉这个事情。
也是因为用Win自带工具处理的情况比较少,要不是今天换了个环境,来不及装Notepad++,估计再过个几年我还是没法察觉这件事。
引用:http://www.cnblogs.com/zhbzz2007/p/4283194.html
>【Git本地库的一些指令操作】
恰巧发现Git不知道什么时候出了个GUI,之前几年一直用Bash,没关注过它的更新,于是试了一下这个东西,感觉还不错。
顺便记录一下Git Bash的一些常用操作吧。
Win环境的MsysGit下载安装直接到这里:https://git-for-windows.github.io/
Linux 环境的Git直接用git命令下载:
sudo apt-get install git
0.查看帮助
任何指令,只要末尾附带--help,都能在默认浏览器打开命令帮助
1.为机器设置你的标示:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
2.创建Git库
进到你想建版本库的目录,
$ git init
会提示你创建empty Git repository完毕。
目录下会生成一个隐藏的.git文件夹。
3.登记文件
在目录随便生成一些啥文件。比如Helloworld01.txt、Helloworld01.txt。
git add Helloworld01.txt
git add Helloworld02.txt
4.提交文件
git commit -m "提交说明"
5.检查版本库里文件变动
$ git status
可以输出当前库里所有被modified或者delete之类过的文件名单。
$ git diff
可以输出所有被改动过的文件名单和他们具体被增删了哪些内容。
文本文件按行算,因此就算加了一个换行符,也是被认为进行了增改。
6.检查版本变动日志
$ git log
7.回退版本
$ git reset --hard HEAD~x
x为从当前版本往回数要回退的版本个数。或是:
$ git reset --hard 版本号(指令序号)
版本号(~)可在日志中查询,或是利用:
$ git reflog
查询每一次命令的的指令序号。
8.丢弃修改操作
$ git checkout --文件名
可以直接把文件还原到版本库里对应的内容,我一般利用这个指令还原库里的文件。
$ git reset HEAD 文件名
撤销暂存区内容。即撤销git add操作。
9.分支管理
创建分支:
$ git branch 分支名
切换分支:
$ git checkout 分支名
查看所有分支:
$ git branch
合并分支到master:
$ git merge 分支名
删除分支:
$ git branch -d 分支名
10.隐藏和恢复工作现场
在现有的分支下,利用下面的命令隐藏工作现场,以切换到其他分支做其他工作:
$ git stash
恢复最近一次的现场时,回到原来的分支,利用下面的语句:
$git stash pop
或是利用:
$ git stash list
$ git stash apply stash编号如stash{0}
$ git stash drop stash编号如stash{0}
来查看所有现场、恢复指定现场、擦除指定现场。
11.创建命令标签
$ git tag 标签名 [对应的命令号,默认为最近一次] [-m "说明文字"]
删除本地标签:
$git tag -d 标签名
删除远程库的标签:
$ git push origin :refs/tags/标签名
--------------------------------------------------------------------
>【把Git挂到GitHub上】
之前一直没用过Github,主要是因为我不是一个开源倡导者,也没有开源开发的需求。(虽说Github有private库,但是每个月要交个几刀才能用。)所以我之前都是直接在自己的服务器上建自己的远程库,几个认识的人开发时clone一下就好了。
但现在因为有了这个需求,我也熟悉了一下Github的内容。
首先在本地的Git库生成你的sshkey。
$ ssh-keygen -t rsa - C "这个key的注释"
会在用户主目录下的.ssh文件夹下看到你生成的key的文件:
其中mykey.pub文件是公钥,右键txt打开,把里面的内容复制一下。
到Github进入账户设置,添加这个key:
到Github,右上角创建一个repository。
然后按提示直接挂库就好了。cmd框里默认的paste是快捷键是shift+ins
第一次push需要带上-u指令,之后不需要。推送结果如下:
有一点需要注意的:Github Email 设置里的这一项一定不能勾上:
不然会报错:remote: error: GH007: Your push would publish a private email address.
>【从Github上克隆库到本地】
进到某个Github库里,获取地址:
在本地建一个文件夹,在Bash里,进到这个文件夹,然后输入:
git clone [email protected]:xxxx/HelloGithub.git
运行结果:
可以看到库已经被我们克隆下来了: