Git学习笔记

git log 日志过长显示不完整 退出不了时,按Q退出。

显示一行git log--pretty=oneline。

安装Git

msysgitWindows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“GitBash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

通过如下命令来配置用户名和Email 

git config --global user.name "Evan"
git config --global user.email "375531039@.com"
通过git config --global user.name和git config --global user.email来查看当前配置。
 
创建一个版本库

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

第二步,通过git init命令把当前这个目录变成Git可以管理的仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的。

使用Windows的童鞋要特别注意:

千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可:

把文件添加到仓库:

git add readme.txt
git add 文件夹名:把文件夹内所有文件添加
git add . :把当前目录下所有文件添加到仓库
用命令git commit告诉Git,把文件提交到仓库
git commit -m "wrote a readme file"

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

git status命令可以让我们时刻掌握仓库当前的状态

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,

git diff readme.txt 

git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数

回退到上一个版本

git reset --hard HEAD^

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

Git提供了一个命令git reflog用来记录你的每一次命令,可以查看每个版本的commit id

git reset--hard commit_id

git reset --hard 3628164

commit_id没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

 

撤销修改

1. git add之前,使用gitcheckout -- file可以丢弃工作区的修改,

2.git add到暂存区之后,在commit之前,用命令git reset HEAD filegit reset HEAD readme.txt可以把暂存区的修改撤销掉(unstage),重新放回工作区,再用用命令git checkout – file恢复即可。
删除文件

用命令git rm删掉,并且git commit

$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- test.txt
远程仓库

网上查看了教程是:

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

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

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSHKey的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

2步:登陆GitHub,打开“Accountsettings”“SSH Keys”页面:

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

3.GitHub上创建一个新的版本库learngit,目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

$ git remote add origin git@github.com:michaelliao/learngit.git

把上面的michaelliao替换成你自己的GitHub账户名,

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

$ git push -u origin master

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

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

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

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

另一种方法:

该方法适合本地工程没有使用本地版本库控制,或者是在工程建立之初就已经和gitHub远程库进行了关联。

1. 在本地工程目录下,使用命令:

git clone https://github.com/AFreshBird/learngit.git

GitHub上新建的远程库克隆到本地工程,会生成一个learngit文件夹,将该文件夹的剪切到上一层目录,至此,本地工程和远程库建立了关联。

然后 addcommit之后,即可使用

git push originmaster命令将本地版本库同步到gitHub。注意需要输入gitHub的账号和密码。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值