1.
git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
$git config --global user.name"Your Name"
$git config --global user.email"email@example.com"
2.创建版本库
$ mkdir learngit #创建一个人文件$cd learngit #进入
$ git init
通过git init命令把这个目录变成Git可以管理的仓库,会生成一个.git文件,此文件隐藏,可通过ls -ah来查看
3.添加到版本库
第一步,用命令git add告诉Git,把文件添加到仓库:
$git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库:
$ gitcommit-m"wrote a readme file"
提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别
一次可以添加多个文件。
$git add file2.txt file3.txt
4.版本回退与修改
$git status 查看版本状态,$git diff 查看修改
$ git log 查看提交历史记录
$ git log --pretty=oneline 查看提交记录简要信息
版本回退
$ git reset--hard HEAD^ 回退到上一个版本,上上个是^^
可用cat查看文件内容
$ cat readme.txt
版本回退也可以通过版本号,版本号不用输全
$ git reset--hard3628164
Git提供了一个命令git reflog用来记录你的每一次命令
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
撤销修改:
git checkout -- readme.txt
从版本库中删除文件:
$ git rm test.txt
如果直接rm text.txt,删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
$git checkout -- test.txt
5.github远程库:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ssh-keygen -t rsa -C"youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
git checkout -b feature/sales_monthly_report origin/feature/sales_monthly_report
分支 feature/sales_monthly_report 设置为跟踪来自 origin 的远程分支 feature/sales_monthly_report。
切换到一个新分支 'feature/sales_monthly_report'
6.分支管理
创建dev分支,然后切换到dev分支:
$git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$git branch dev$git checkout dev
用git branch命令查看当前分支
我们把dev分支的工作成果合并到master分支上
$ git checkout master
$ git merge dev
删除dev分支:
git branch -d dev
用带参数的git log也可以看到分支的合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
用git log --graph命令可以看到分支合并图
7.工作区暂存
$git stash
用git stash list命令查看缓存内容
Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了
恢复指定的stash:
$git stash apply stash@{0}