- 环境搭建:
- Linux:安装git
yum install -y git
- Windows:到官网下载安装包
安装完成后配置如下用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
通过
git init
命令把当前目录变成Git可以管理的仓库(先cd到要变成仓库的目录下执行命令git init
,执行完命令后就能在当前目录下看到.git文件,此文件为隐藏文件,不能删除,用于跟踪目录变化)通过
git add <filename>
把文件添加到暂存区(重复操作添加多个文件到暂存区)通过
git commit -m "版本修改注释"
将文件提交到仓库通过
git status
查看仓库当前的状态(能查看到是否有修改,是否已提交)通过
git diff <filename>
查看当前内容和分支中最新版本的内容的修改情况(查看清楚修改了什么内容后就放心提交了git add <filename>
)通过
git log
查看从最近到最远的提交日志(可以加上参数简单查看git log --pretty=oneline
)(然后根据显示的版本号回退版本)通过
git reset --hard HEAD^
回退到上一个版本(HEAD
表示当前版本,HEAD^
表示上一版本,HEAD^^
表示上上一版本)(回退方法一)通过
git reset --hard <commit id>
回退到指定id的版本(用命令 git log
查看)通过
git reflog
命令查看命令历史就可以查看到未来的版本号了(当你回退到某个版本后,再像恢复到最新版本时,用git log
命令已经查看不到最新版本的commit id 了,这时通过git reflog
命令查看命令历史)通过
git checkout -- <filename>
可以撤销文件在工作区的全部修改。 (有两种情况: 一种是自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 另一种是 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。) 通过
git reset HEAD <filename>
可以把暂存区的修改撤销掉(unstage),重新放回工作区(git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。)通过
git rm <filename>
并且git commit
删除文件(一般情况下,你通常直接在文件管理器中把 没用的文件删了,或者用rm
命令删了;现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
;二是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本git checkout -- <filename>
)通过
ssh-keygen -t rsa -C "youremail@example.com"
来创建SSH Key(执行命令后一路按回车)(执行完成后会在用户主目录下多出一个.ssh 的文件夹,文件夹里面有id_rsa私钥和id_rsa.pub公钥)登陆GitHub 设置SSH Keys(填写上一步生成的id_rsa.pub公钥)
通过
git remote add origin git@github.com:kangvcar/learngit.git
把本地仓库和远程GitHub仓库关联(url从github的repo项目里可以找到)通过
git push -u origin master
把本地仓库的所有内容推送到远程库上(第一次使用加上了-u
,是推送内容并关联master分支。之后推送直接git push origin master
)
远程仓库:(从远程仓库克隆到本地仓库) 18. 通过 git clone git@github.com:kangvcar/xx.git
把远程仓库克隆到本地仓库(url从github的repo项目里可以找到)
分支管理: 19. 通过 git checkout -b dev
来创建并切换到dev分支(-b
参数表示创建并切换分支,相当于git branch dev
和 git checkout dev
两个命令的效果)
通过
git branch
来查看当前分支(当前分支前会有*号)切换分支后
git add <filename>
和git commit -m "修改注释"
这些操作都将在新分支dev上完成,与master分支没有影响。通过
git checkout master
切换回master分支。(如果dev分支没有合并到master分支上,那么在master分支上是看不到dev分支所做的修改)通过
git merge dev
来把dev分支的工作成果合并到当前分支上(master分支)通过
git branch -d dev
来删除dev分支(上一步将dev分支合并到master分支后就可以放心的删除dev分支了)通过
git merge --no-ff -m "合并注释" dev
来合并分支的话,git会生成一个新的commit,这样就不会删除所合并分支的历史了。(--on-ff
参数表示用普通模式合并,而不是快速模式;快速模式合并后会删除合并前的分支,而普通模式不会删除)(用此命令代替git mergo dev
)通过
git log --graph
来查看分支合并图(具体命令gti log --graph --pretty=oneline --abrev-commit
)通过
git stash
来存储并隐藏现场(隐藏现场后可以创建新分支去完成其他工作,而不影响已经隐藏起来的现场;一般临时需要修改bug,而手头上又有未完成的工作是使用)通过
git stash list
来查看隐藏现场的列表通过
git stash pop
或git stash apply
来恢复现场(git stash pop
恢复后删除stash的内容;而git stash apply
恢复后不会删除stash的内容,如需删除用git stash drop
)(命令后面可以接参数来恢复指定stash,如git stash apply stash@{0}
,stash@{0} 通过git stash list
查看)
工作区就是我们电脑里能看到的目录。 stage就是暂存区,通过git add <filename>
就是将文件提交到暂存区。 master就是master分支,通过git commit
就是将暂存区的文件更改提交到master分支上。