社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
创建版本库(仓库)文件
mkdir jacklingit //创建git文件夹
cd jacklingit // 打开
pwd // 查看当前目录
通过 git init 命令把这个目录编程可以管理的仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
这个时候当前目录多了一个.git的文件,这个目录是Git来跟踪管理版本库的,不能手动修改。
现在编写一个test.txt的文件放到jacklingit目录下,并通过git.add告诉git,把文件添加到仓库,然后通过git commit命令告诉git 把文件提交到仓库。
$ git add test.txt
$ git commit -m "wrote a test file"
这里的 commit -m 中 -m后面跟的是说明性质文字,可以是任意内容,但最好是有意义的。为什么需要add和commit 两步?因为 一次性可以commit多个文件,可以多次添加,一次提交。
假如现在对test.txt进行部分修改
用git status查看修改状态,用 git diff 来查看具体做了哪些改动
$git status
$git diff
看到具体改动之后我们才可以放心提交
git log 命令显示由近到远的版本日志,包括时间、日期、作者等,如果想查看精简版本 可以使用 git log --pretty=oneline 命令
$git log
$git log --pretty=oneline
假如这个文件提交过100次,那就有100个版本,使用git reset命令退回到指定版本
$ git reset --hard HEAD^ //退回到上一个版本
$ git reset --hard HEAD^^ //退回到倒数第二个版本
$ git reset --hard HEAD~50 //退回到往前数50个版本
然后通过 cat test.txt来查看当先版本是否时候操作后的版本
这个时候通过 git log命令来查看版本日志,发现版本记录也彻底回到了原来50版本对应的日志,那么如何再退回到没有进行版本退回之前的最新版本?假如操作窗口还没有关闭,往上找到最新版本的版本号,假如是00000,执行 git reset --hard 00000
$ git reset --hard 00000
假如连commit id 也找不到怎么办? git reflog 命令可以查看你的每一次命令,然后知道commit id 就OK了
head 是git 的版本指针,设定哪里,版本指针就会指向哪里,所以恢复速度很快
git diff HEAD --test.txt //查看文件的修改
当你该乱了工作区某个文件的内容,想直接丢弃工作区的修改
$ git checkout --test.txt
当你不但该乱了而且add到了暂存区
$ git reset HEAD test.txt
$ git checkout --test.txt
当你不但放到了暂存区而且commit了,那就退回到上一个版本
$ git reset HEAD^
删除文件
$ rm test.txt
这时工作区和暂存区的文件内容就不一致了,如果你要一并删除暂存区的对应文件,并且提交
$ git rm test.txt
$ git commit -m "remove test.txt"
另一种情况时候误删,就用checkout恢复
$ git checkout -- test.txt
文件一旦提交到版本库,就永远不用担心误删,但时候要小心,最后一次修改的内容会丢失。
登录github建立一个新的仓库 名字叫gitskills,勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件
然后克隆一个本地库
git clone git@github.com:Jacklin1992/gitskill.git
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!