先来张图说明下git的各个区
#工作区 Workspace
#暂存区 Stage / Index
#本地仓库 Repository
#远程仓库 Remote
(1)首先在你需要进行版本控制的目录下运行:
git init
(2)运行后会产生一个.git的文件夹,没错,这个就是本地仓库的存放位置,如果隐藏,按Ctrl+h进行显示
(3)在文件夹下建立一个文件file1.txt
(4)使用git add将该文件加入到暂存区,此时没有任何输出
git add file1.txt
如果要添加文件夹文件夹下的文件,使用
git add 文件夹名称/
(5)使用git commit -m将文件添加到本地仓库,-m后面输入的是本次提交的说明
git commit -m "add first file1"
(6)在file1.txt文件内输入内容再重复(4)和(5),会显示1changed,1insertion表示有一个文件修改,插入例如一行
(7)如果想退回第一个空白文件怎么做呢?可是使用git log查看提交日志
git log
(8)使用如下命令回到上一个版本
git reset --hard HEAD^
(9)如果想回到上一个版本,先找到上一个版本的id,也就是commit后面的那一串,输入前四位就行
git reset --hard 217e
(10)如果你已经关掉电脑了,还想回到之前的版本并且无法看到id,使用如下命令就可以看到每个版本的记录了,可以看到,second file1的id是217e,就可以根据id再回去啦
git reflog
217ece6 HEAD@{0}: reset: moving to 217e
325ad7d HEAD@{1}: reset: moving to HEAD^
217ece6 HEAD@{2}: commit: add second file1
325ad7d HEAD@{3}: commit (initial): add first file1
(11)使用git status查看状态,先添加一个新文件file2.txt,会显示如下内容,表示file2.txt是新文件,在缓存区等待提交
git add file2.txt
git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
新文件: file2.txt
(12)如果你在工作区修改文件发现修改错了,可以使用git checkout --filename退回上一版本保存的文件,如果你之前刚add到缓存区,就回到提交完的状态,总之git checkout就是回到已有文件上一次你保存的状态,可以使暂存区的文件,也可以是本地仓库的文件
git checkout --filename
(13)使用git reset HEAD <file>将暂存区add退回
git reset HEAD file1.txt
(14)删除文件和恢复文件
如果你想删除某个文件,git就会发现工作区和版本库不一致,如果确实想删除
rm file2.txt
git rm file2.txt
git commit -m"remove file2.txt"
如果不小心删除,以下命令就可以恢复工作空间的文件
git checkout --file2.txt
远程仓库github
(1)你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
(2)在Repository name填入study_git,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
git remote add origin https://github.com/HITLDY/study_git.git
git push -u origin master
(3)第一次添加会让你输入github的用户名和密码,输入即可,以后想要添加远程仓库只需要使用如下命令即可:
git push origin master
本文是参考廖雪峰网站的个人笔记,更加详细的内容请点击廖雪峰网站