Git 学习01

一、创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

cd F:

mkdir learngit

pwd F/learngit 显示当前目录

二、通过git init命令把这个目录变成Git可以管理的仓库

Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git的目录

接下来把文件添加到版本库

编写一个readme.txt文件,内容如下:

特别注意千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件

Git is a version control system.
Git is free software.

git add readme.txt
git commit -m "wrote a readme file"

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

我们修改readme.txt文件

git status

虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add

git add readme.txt

同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:

git status

git commit -m "add distributed"

提交后,我们再用git status命令看看仓库的当前状态:

三、查看历史记录

git log

把readme.txt回退到上一个版本

在Git中,用HEAD表示当前版本

上一个版本就是HEAD^

上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

如果一直 git reset --hard HEAD^

就会不停的返回上一版本知道最后一个版本版本为止,这时候你再git status 查看版本就会发现看不到后面的版本了,想再回去已经回不去了,肿么办?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个thir dversion commit idd380.,于是就可以指定回到未来的某个版本:

上一个版本内容

返回版本之后的内容

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

关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办

再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

git reflog 查看命令历史

Git工作区和暂存区概念

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

git commit只负责把暂存区的修改提交

那怎么提交第二次修改呢?你可以继续git addgit commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

添加一个style.css文件 add 并提交之后 手动删除

git reset --hard commit_id 也可以还原回来 (根据说明备注写好找到命令ID

创建远程仓库

gitHub账号 [email protected]

https://help.github.com/articles/generating-ssh-keys/s

在哪里添加密匙

https://help.github.com/articles/keeping-your-ssh-keys-and-application-access-tokens-safe/#reviewing-your-ssh-keys

添加远程库

登陆GitHub

然后找到“Create a new repo”按钮,创建一个新的仓库:

在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

把一个已有的本地仓库与之关联,然后把本地仓库的内容推送到GitHub仓库

在本地的learngit仓库下运行命令:本地关联到远程库

git remote add origin git@github.com:ruoqiang/learngit.git

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

git push -u origin master

在以后的推送或者拉取时就可以简化命令。

git push origin master

总结:

1. 安装好了git 进入当前项目目录(cd F:/learngit) git 直接git init

2.添加文件:git add 文件名 提交文件:git commit –m “提交说明

3.查看文件变更状态 git status 比较文件版本之间的不同 git diff

4.使用命令git reset --hard commit_id。版本的历史之间切换

切换前,用git log可以查看提交历史,以便确定要回退到哪个版本。

命令窗口关闭之后要返回版本,用git reflog查看命令历史,以便确定要回到哪个版本。

5.每次修改,如果不add到暂存区,那就不会加入到commit中。

创建远程仓库

1.创建SSH Key

ssh-keygen -t rsa -C "[email protected]"

设置密码是可以为空一直回车知道不提醒了为止

msysgit 下 确认ssh-agent 的可用性

然后eval $(ssh-agent -s)

添加 SSH key 到ssh-agent

ssh-add ~/.ssh/id_rsa

可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥

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

在Key文本框里粘贴id_rsa.pub文件的内容(打开文件复制里面的内容贴进去

6. 关联远程

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

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

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

参考链接

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

时间: 2024-11-08 11:22:00

Git 学习01的相关文章

Git学习01 --git add, git commit , git log ,git status, git reset --hard, head

特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆.集中式版本控制系统最大的毛病就是必须联网才能工作. 使用Git 1.创建版本库 首先,选择一个合适的地方,创建一个空目录,通过git init命令把这个目录变成Git可以管理

Git学习01:Git安装

Linux Centos7 安装 一.yum安装,只要执行 yum -y  install git 即可,但是yum安装无法控制版本,可能版本会比较老,推荐使用方法二 [[email protected] ~]# yum -y install git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile ...... Installed: git.x86_64 0:1.8.3.1-21.el7_7 Dep

git(学习之三)基本操作

Git学习笔记 ##################################################### qq:1218761836 qq群:150181442 E-mail:[email protected] ##################################################### 目录 Git. 2 1.1 初次运行前的配置... 2 1.2 创建版本库... 3 0.3 git提交文件... 4 1.4 检查当前文件状态... 4 1.5

Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?

一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/77070977) 里面已经写清楚了如何使用Gitlab自动备份功能.  但是之前的备份功能只是备份到Gitlab服务运行的那台服务器上,如果哪一天那台服务器的磁盘损坏了的话,数据无法取出,那么对于公司来说是一匹无法想象的损失,因为 代码是公司的重要资产,需要以防万一. 代码是公司的重要资产,需要以防万一. 代

git 学习小记之记住https方式推送密码

昨天刚刚学了点git基础操作,但是不幸的是[email protected]给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在[email protected]官网找到了解决方法<https方式使用[email protected]设置密码的方式>文中给出了几个方法,并且都非常简单. 关于 cache 缓存方式,我不太喜欢,因为要设置时间,而且会过期.而 store 相应的非常方便,设置全局后,方便多个库使用.当然如果

Git 学习笔记

Git 学习笔记 本文整理参考廖雪峰的 Git 教程, 整理 Git 学习笔记, 用于 Git 常用命令速查:常用命令用彩色标注! Git学习笔记 $ git config --global user.name "Your Name" 配置本机所有仓库的用户名 $ git config --global user.email "[email protected]" 配置本机所有仓库的Email地址 $ git init 初始化一个Git仓库 $ ls -ah 查看隐

Git学习 -- 自定义Git

忽略特殊文件 在工作区创建.gitignore文件,编写内容 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: 忽略Python编译产生的.pyc..pyo.dist等文件或目录 *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa 然后add和commit该文件 此后当工作区出现.gitignore中类型文件时,git

OSX学习01之更新头像

前不久在官网上守株待兔,买了一个官翻版865,其实最想买294的,可是米不足啊——所以,在同时下了865和293的订单,并纠结了一天后,确定了865,剩余的钱够一个Mac mini了,如果不买也可以日后买iMac. 相关的内容等会儿写另一帖,废话就不说了. 拆机后简单的设置下账户信息,但是没觉得账户图片好看,又没发现又什么方式设置账户图片,纠结了很久. 本机没有什么图片,这时候可以先把图片下载下来再说. 进入系统偏好设置-->用户与群组-->当前用户,点击现有头像-->最近使用-->

git学习小结

背景:最近因为工作原因,需要将以前的代码库由bitbucket重新布置在一台服务器上,所以就学习了下git,特此记录下 在167这台机器上搭建apache,用做git server,由于以前apache都已经搭好了,所以这里只配置git server 就可以了,此处贴出配置: 服务器搭好了,来到配置中的root目录,git clone https://[email protected]/XXXX 此时,库和服务器都搭好了,用于新库测试的机器也可以从git server上克隆库了,来,我们来试试从