Git命令
基本参照廖雪峰Git做的记录,用于速查,欢迎补充。
基础命令
创建空目录
mkdir learnGit
cd learnGit
pwd //显示当前目录
没有那么git ^
git init //git仓库初始化(在目标路径下创建master分支)
git add [filename1] [filename2] ... //将文件添加至暂存区
git add . //一次性添加路径下全部文件
git status //查询仓库状态
git diff [filename] //查询文件当前与上次的更改
git diff [HEAD~number]--[filename] //查看工作区与版本库内最新版文件的区别
git commit -m "提示性信息" //提交所有区文件,默认提交至"master"分支
git log //查看提交记录
回退
git reset --hard HEAD^ //回退至上一版本
HEAD表示当前版本,HEAD^表示上一版本,HEAD^^倒数第二个版本,HEAD~100上100个版本
撤销回退
git reset --hard [commitID] //仅需commitID的前几位供git自行查找
commitID可通过git log查看,对于清屏后的情况,可使用git reflog查看
撤销更改
git checkout -- [filename] //丢弃上次修改,回退至最近一次git add或git commit时的状态
如果待修改文件已经进入暂存区,使用git reset HEAD <filename>可撤销,文件重新放回工作区,然后使用git checkout --[filename]彻底放弃本次修改
删除文件
常用rm [filename]但会收到git警告文件被删除。
从版本库中删除文件git rm [filename]并git commit,注意使用-m填写删除文件的提示性信息。
误删文件,使用git checkout -- [filename]撤销
链接远程仓库
创建SSH Key,WIndows下打开Git Bash,键入ssh-keygen -t rsa -C "emali@exmaple.com"其中emali任意填写皆可,起辨认作用。
进入Windows用户主目录下的.ssh或直接使用指令$ open ~/.ssh,可发现私钥id_rsa,公钥id_rsa.pub,其中,公钥可随意传播。
进入Github的SSH设置,任意填写SSH标题,将id_rsa.pub中的文件拷贝到Key文本框,点击add key完成。
关联远程库
git remote add [originName] git@userName:repoName.git
若远程库已存在:
git remove -v
git remove [originName]
推送到远程
git push -u [originName] [currentBranch]
第一次推送 使用-u参数,关联本地/远程库,此后可省略。
删除远程库
git remote rm [originName]
解除本地/远程库关联
克隆远程库
git clone git@github.com:[repoName]
SSH传输协议最快
分支管理
创建分支
git branch dev //创建dev分支
git checkout dev
Switched to branch 'dev' //切换至dev
前两条语句相当于git checkout -b dev
合并分支
git merge dev //合并指定分支到当前所在分支
git branch -d dev //删除dev分支
git branch //查看分支
创建新分支
并不推荐使用git checkout <branch>切换分支,推荐使用git switch <branch>,创建新分支并打开,使用switch -c <branchName
冲突解决
pass
标签管理
创建标签
git tag v1.0 //为当前所在分支最新commit版打标签
git tag v0.9 [commitID] //对某一版本打标签
git tag //查看所以标签
git show [tagName] //查看某标签具体信息,包括[commitID,Data...]
git tag -a v1.0 -m "解释性文字" [commitId前几个字符] //-a 指定标签名,-m指定说明文字
//a.k.a本标签带有说明,git show可见
操作标签
git tag -d v0.9 //删除标签
git push origin <tagname> //推送标签到远程
git push origin --tags //推送全部标签
git push origin :refs/tags/<tagname> //删除远程标签,关于冒号作用:
//官方的解释:将冒号前面的空值推送到远程标签名,从而高效地删除它。
git push origin --delete ref/tags/$<tagname> //另一种删除方法
参考
[1] 廖雪峰Git教程 史上最浅显易懂的Git教程!
为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程。 首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度; 其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,你就可以通过Git轻松地完成你的工作。