Git的学习
关于廖雪峰老师介绍Git的介绍(本来想总结一下,但发现老师写的已经很详细,保留跳转地址以学习)
跳转:https://www.liaoxuefeng.com/wiki/896043488029600
参考资料: https://gitee.com/all-about-git (GIt命令大全)
Git指令
1、安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门!
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
2、创建版本库
$ git init
在需要创建的文件夹中运行此命令就可以了,
把文件添加到版本库
一定要放到learngit
目录下(子目录也行,运行下面的指令时需自建一个文件readme.txt),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
第一步,用命令git add
告诉Git,把文件添加到仓库:
$ git add readme.txt
第二步,用命令git commit
告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
commit
可以一次提交很多文件,所以你可以多次add
不同的文件,比如:
$ git add file1.txt $ git add file2.txt file3.txt $ git commit -m "add 3 files."
4、查看文件状态
掌握仓库当前的状态
$ git status
看具体修改了什么内容
$ git diff readme.txt
5、版本回退
查看各版本的历史记录
$ git log
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
参数
$ git log --pretty=oneline
回退到上一个版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
$ git reset --hard HEAD^
查看文件内容
$ cat readme.txt
回退版本后现有的版本号用git log是查不到的,想要到最新版本找到那个某个版本号(版本号不用写全,前几位就行)
$ git reset --hard 1094a
如果不知道版本号,想要最新的版本(git reflog可以查看历史操作记录)
$ git reflog
6、管理修改
Get有一个暂存区的概念,git add先把第一次修改的文件提交到暂存区,现在修改源文件,如果不对文件使用git add,那git commit之后提交的文件其实是暂存区里的第一次修改的文件!意思就是git commit提交的文件是暂存区中的文件
7、撤销修改
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git log // 显示当前分支的版本历史commit git log --stat // 显示commit历史,以及每次commit发生变更的文件 git log --pretty --oneline // 显示commit版本号和注释 git checkout [file] // 恢复暂存区的指定文件到工作区 git checkout [commit] [file] // 恢复某个commit的指定文件到暂存区和工作区 git checkout . // 恢复暂存区的所有文件到工作区 git reset [file] // 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 git reset --hard // 重置暂存区与工作区,与上一次commit保持一致 git reset [commit] // 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 git reset --hard [commit] // 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 git reset --keep [commit] // 重置当前HEAD为指定commit,但保持暂存区和工作区不变 git revert [commit] // 新建一个commit,用来撤销指定commit,后者的所有变化都将被前者抵消,并且应用到当前分支 // 暂时将未提交的变化移除,稍后再移入 git stash git stash pop
8、使用分支
git branch //查看分支 git branch <name> //创建分支 git checkout <name> //切换分支 git checkout -b <name> //创建+切换分支 git merge <name> //合并某分支到当前分支 git branch -d <name> //删除分支
9、远程仓库的操作
git remote add [shortname] [url] // shortname:给仓库取的别名 url:远程仓库地址 git fetch [remote] // 下载远程仓库所有变动 git remote -v // 显示所有远程仓库名称 git remote show [remote] // 显示某个远程仓库的信息 git pull [remote] [branch] // 取回远程仓库的变化,并与本地分支合并 git push [remote] [branch] // 上传本地指定分支到远程仓库 git push [remote] --force // 强行推送当前分支到远程仓库,即使有冲突 git push [remote] --all // 推送所有分支到远程仓库