Git学习记录(一)
2018-01-18 23:03
344 查看
详细的介绍在廖雪峰教程网站上,本文为学习此教程过程中的总结,仅供个人参考。
1、创建版本库(repository)及添加文件到git通过git init命令把当前目录变成Git可以管理的版本库:
[master (root-commit) 0dce692] I wrote a learninggit file
1 file changed, 2 insertions(+)
create mode 100644 learninggit.txt为什么Git添加文件需要
2、查看修改
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff命令可查看修改内容。
3、版本回退git log命令显示从最近到最远的提交日志。如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数。首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的那个版本的commit_id。
4、工作区和暂存区Git的版本库(repository)就是工作区中的隐藏文件夹.git。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。添加文件到git中的过程如下(图来自廖雪峰Git教程):
5、撤销修改 git checkout -- learninggit.txt 命令可以让这个文件回到最近一次
用命令
也就是说:
当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用git checkout -- file命令。
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用git reset HEAD file命令,第二步用git checkout -- file命令。
已经提交了不合适的修改到版本库时,想要撤销本次提交,运用版本回退的方法,不过前提是没有推送到远程库。
6、删除文件 通常
7、用github做远程仓库第一步在本地创建SSH key,然后登陆github添加SSH key,在github上创建一个新的版本库btgit(例)。在本地仓库下运行:$ git remote add origin git@github.com:NT795/btgit.git
关联本地仓库与远程仓库。然后运行$ git push -u origin master 命令将本地仓库内容推送到github仓库(实际上是把当前分支
1、创建版本库(repository)及添加文件到git通过git init命令把当前目录变成Git可以管理的版本库:
$ git init Initialized empty Git repository in F:/works/.git/在当前工作区内(例如我works文件夹或其子目录)新建一个learninggit.txt文件(用cat命令查看文本内容):
$ cat learninggit.txt I am learning git. 01.18.2018添加文件到git步骤:第一步,用git add命令把文件添加到仓库:
$ git add learninggit.txt第二步,用git commit命令把文件提交到仓库:$ git commit -m "I wrote a learninggit file"
[master (root-commit) 0dce692] I wrote a learninggit file
1 file changed, 2 insertions(+)
create mode 100644 learninggit.txt为什么Git添加文件需要
add,
commit一共两步呢?因为
commit可以一次提交很多文件,所以你可以多次
add不同的文件,比如:
$ git add file1.txt $ git add file2.txt file3.txt $ git commit -m "add 3 files."
2、查看修改
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff命令可查看修改内容。
3、版本回退git log命令显示从最近到最远的提交日志。如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数。首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的那个版本的commit_id。
4、工作区和暂存区Git的版本库(repository)就是工作区中的隐藏文件夹.git。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。添加文件到git中的过程如下(图来自廖雪峰Git教程):
5、撤销修改 git checkout -- learninggit.txt 命令可以让这个文件回到最近一次
git commit或
git add时的状态。
git checkout -- file命令中的
--很重要,没有
--,就变成了“切换到另一个分支”的命令。
用命令
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。
也就是说:
当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用git checkout -- file命令。
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用git reset HEAD file命令,第二步用git checkout -- file命令。
已经提交了不合适的修改到版本库时,想要撤销本次提交,运用版本回退的方法,不过前提是没有推送到远程库。
6、删除文件 通常
rm命令可以删除文件或者直接手动删掉。现在在版本库内可有两个选择:一是确实要从版本库中删除该文件,那就用命令
git rm删掉,并且
git commit:
$ git rm learning.txt rm '现在,文件就从版本库中被删除了。另一种情况是删错了,可从版本库里把误删的文件恢复到最新版本:learninggit.txt'
$ gitcommit -m "remove learninggit.txt"
[master d17efd8] remove learninggit.txt
1 file changed, 1 deletion(-)
delete mode 100644 learninggit.txt
$ git checkout -- learninggit.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
7、用github做远程仓库第一步在本地创建SSH key,然后登陆github添加SSH key,在github上创建一个新的版本库btgit(例)。在本地仓库下运行:$ git remote add origin git@github.com:NT795/btgit.git
关联本地仓库与远程仓库。然后运行$ git push -u origin master 命令将本地仓库内容推送到github仓库(实际上是把当前分支
master推送到远程)。由于远程库是空的,我们第一次推送
master分支时,加上了
-u参数,Git不但会把本地的
master分支内容推送的远程新的
master分支,还会把本地的
master分支和远程的
master分支关联起来,在以后的推送或者拉取时就可以简化命令。从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master把本地
master分支的最新修改推送至GitHub。8、从远程仓库克隆用命令
git clone从远程仓库克隆一个本地库:
$ git clone git@github.com:NT795/gitskills.git