一款由Linus两周写出的工具
git简介
git是linus花了两周写的,以为更好管理代码库。
git是分布式的,意思就是每个人都有一个完整的版本库而不是仅仅只有一个版本。
git指令
git init
创建版本库,这个时候会创建出一个名为.git的文件夹,这个目录就是用来追踪管理版本库的。
git add file
告诉git说这个文件需要被提交到版本库
git commit -m ‘message’
告诉git说把需要提交的文件,全部提交到版本库。
技巧就是先多个git add 然后一个git commit。
git status
表示查看当前仓库状态
git diff
查看修改内容
使用技巧先使用git status查看仓库状态,然后用git diff查看修改内容。
git log
查看提交日志 如果说commit被称为游戏归档的话,那么git log就是查看游戏所有的归档。(查看的是当前的版本库)
git reset --hard HEAD^
git中使用HEAD表示当前版本,HEAD^则表示上一个版本,
HEAD^^则表示上上一个版本。
在使用完git reset --hard HEAD^ ,再使用git log查看版本会发现被需要回退的那个版本已经每个。
git reflog
这个记录了所有的commit提交,并且有每一次提交的commit_id。
由上面可知,使用git reset --hard HEAD^回退之后,git log没有了存档记录,这个时候可以使用git reflog查看所有的git提交
再使用git reset --hard commit_id,这样就可以再返回到回退的版本。
暂存区、工作区、版本库
工作区就是我们所谓的git init的文件夹
版本库就是.git文件夹
暂存区j就是git add之后存在的地方,然后使用git commit将暂存区的东西全部都刷一个分支上。
git会为我们自动创建一个master分支,然后指向该分支的指针陈伟HEAD
git只所以牛逼是git追踪并管理的是修改,而非文件。
git checkout – file
如果你对工作区的文件进行修改还未提交,可以使用这个命令对工作区的修改进行丢弃。
–这个非常重要,如果没有–的话就表示切换到另一个分支。
git reset HEAD file
如果你已经提交到了暂存区的话,git reset HEAD file可以将其撤销。
git rm file
进行文件删除,只要你交给了git管理的话所有的版本都能回来,可以进行git
commit提交,然后回退版本库,就可以回来了。
当然如果手动误删可以使用git reset HEAD file进行返回。
远程仓库
git remote add origin git@gitee.com:onexiaochuan/xxx.git
将远程仓库名字定为origin
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
之后只需将git push origin master就能将修改推送至github。