ssh密钥设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 git config --global user.name "L0kiii" git config --global user.email "[email protected] " cd ~/.ssh ls ssh-keygen -t rsa -C "[email protected] " eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ssh -T [email protected] Hi L0kiii! You've successfully authenticated, but GitHub does not provide shell access.
项目部署 1 2 3 4 5 6 7 8 9 10 11 git init git remote add origin [email protected] :L0kiii/xxxx.git git pull origin master –allow-unrelated-histories git add <file>/ git add <dir>/git add . git commit -m "first commit" git push -u origin master/git push -u origin master -f
提交文件到索引库 “索引”保存工作树内容的快照,并且将该快照作为下一个提交的内容。 因此,在对工作树进行任何更改之后,并且在运行 git commit
命令之前,必须使用 git add
命令将任何新的或修改的文件添加到索引。
新建test.txt文件 提交test.txt文件到索引库
查看目录中所有修改过或已删件但没有提交的文件
提交索引文件到仓库 -m参数是本次修改的描述
1 git commit -m "add a test.txt file"
关联远程仓库
把本地库的所有内容推送到远程库上 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,不加任何参数使用 git push
。
1 git push -u origin master
显示工作目录和暂存区的状态 git status
命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit
)的文件
git diff 文件对比 假设仓库里已提交的有五个版本,依次提交的是A、B、C、D、E 。 不加参数即默认比较工作区与暂存区
查看最近两次提交版本的区别(版本E和版本D的差别)
1 git diff HEAD^ -- <filename>
命令则可以查看最近一次提交和最近一次提交的上上个版本的区别(版本E和版本C的差别)
1 git diff HEAD^^ -- <filename>
查看版本E和版本A的差别
1 git diff HEAD~4 -- <filename>
查看版本历史记录 1 2 3 git log git log --pretty=oneline
版本回退 回退到上一个版本
1 2 3 git reset --hard HEAD^ git reset --hard [commit id]
HEAD
指向的版本就是当前版本
查看git历史命令
撤销工作区的修改 1 git reset HEAD <filename>
下面的命令还可以撤销工作区中删除的文件
1 git checkout -- <filename>
从版本库中删除文件
工作区和暂存区 工作区 工作区就是在电脑里所看到的目录。
版本库 工作区中的 .git
目录不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为 stage
(或者叫 index
)的暂存区,还有Git为我们自动创建的第一个分支 master
,以及指向 master
的一个指针叫 HEAD
。
创建和合并分支 创建+切换分支 dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
1 2 $ git branch dev $ git checkout dev
创建分支
切换分支
查看当前分支 git branch命令会列出所有分支,当前分支前面会标一个*号。
1 2 3 $ git branch * dev master
合并分支 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。git merge
命令用于合并指定分支到当前分支。
1 2 git merge dev git merge --no-ff -m "merge with no-ff" dev
删除分支
保存未提交的修改 git stash
会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。 查看已储存的文件
恢复已储存的文件
恢复已储存的文件并删除stash中的内容
标签管理 创建标签 默认标签是打在最新提交的commit上的
对指定 commit id
打标签
1 $ git tag v0.9 [commit id]
查看所有标签
查看标签信息
删除标签
推送标签到远程
1 $ git push origin <tagname>
一次性推送全部尚未推送到远程的本地标签
1 $ git push origin --tags
删除远程标签
1 2 3 4 5 6 7 8 先从本地删除 $ git tag -d v0.9 Deleted tag 'v0.9' (was f52c633) 然后从远程删除 $ git push origin :refs/tags/v0.9 To github.com:michaelliao/learngit.git - [deleted] v0.9
Referer