安装
请移步:git安装
配置
配置用户名和电子邮件
git config --global user.name"Your Name"
git config --global user.email"your_email@whatever.com"
这两个参数在每次提交时会记录到历史记录内,对于多人协作来说,很重要
创建版本库
创建版本库:git init 仓库名
该命令创建一个新的名为”仓库名“的目录,该目录下的所有文件和目录整体构成工作区,被git监管
跟踪新文件和提交
将新文件加入跟踪/将文件的修改加入暂存区:git add 文件名 文件名
将所有新文件加入跟踪/将所有文件的修改加入暂存区: git add .
提交已经加入跟踪的文件:git commit -m"提交消息"
提交某个已经加入跟踪的文件:git commit 文件名 -m"提交消息“
提交本地已经跟踪文件的所有更新git commit -m"提交消息"-a
状态查看
查看git工作区和暂存区的情况:git status -s
该命令可以显示git工作区中,没有加入跟踪的文件、加入跟踪的文件
?? file:未跟踪状态
A file:已添加
M(红色) file:未暂存的修改
M(绿色) file:已暂存的修改
查看仓库状态:git log head~N -N
head~N 表示从最近提交开始倒数第N个修订,head 指向最近的一次修订;
-N 指定输出总数量
即该命令才最近的一次修订开始列出N个修订的信息
简易命令:git log
此命令以时间为依据做反序排序,打印概要信息
git log
的附加参数:
--pretty=oneline
时简明输出,只显示SHA1标识,和提交消息
--pretty=format:'%s'
只显示提交消息
--abbrev-commit
缩写SHA1标识符
--graph
以图形展示修订(可以查看分支合并情况)
标识符和缩写后的标识均可代替head~N来指向某一次修订
查看某个修订的详细情况:git show head --quiet
不加
--quiet
时,显示它与前一个修订之间的差异
查看差异:git diff head~N head~N 要查看的文件
查看工作区和仓库的差异:git diff
撤销
将已经跟踪的文件取消跟踪:git reset 文件名
不指定文件名时全部清空
撤销已经跟踪了的文件的修改:git checkout --文件名
撤销全部修改:git checkout --.
git checkout
这个命令的实质是用仓库版本替换工作区版本
git checkout 命令,一旦撤销无法还原
版本回退:git reset head~N
--hard
删除了工作区的文件
--soft
回到上次提交之前的状态,即提交过的文件在暂存区中
--mixed
(默认)提交过的文件回到未跟踪状态,即不在暂存区
撤销回退:
1.使用git reflog
查看列出全部的操作
2.使用git reset head@{N}
或者git reset 标识符
删除文件:
将文件从仓库和暂存区移除:git rm --cached 文件名
将文件从本地删除:git rm -f 文件名
分支
查看分支:git branch
创建分支:git branch 分支名
切换分支:git checkout 分支名
创建并切换分支:git checkout -b 分支名
删除分支:git branch -d 分支名
合并分支dev到主分支:git merge dev
在主分支的仓库历史中可以看过被合并分支的存在记录
分支历史整体搬移:git rebase 分支名
在主分支库中无法看到被合并分支的存在记录
强制禁用Fast forward 模式:git merge --no-ff
当被合并分支对于当前分支来说只增不减时,自动开启Fast forward模式
merge 时生成新的commit,从分支历史上可以看出分支信息
远程仓库
查看远程库信息:git remote
查看远端库权限:git remote -v
关联远程库:git remote add origin 远端库地址
origin 为远程库的名字,git默认叫法
从远端库上克隆:git clone 远端库地址
将远端库上的东西拉下来:git pull 远端库名称 分支
将本地库的一个分支推上远端库:git push 远端库名称 分支
第一次推送使用:
git push -u 远端库名称 分支
创建本地分支和远程分支的联系:git branch --set-upstream 本地分支 远端库名称/分支
暂存区储存
储存:git stash
恢复:git stash apply
删除储存内容:git stash drop
恢复并删除:git stash pop
查看储存内容:git stash list
标签
在最新提交的修订上打上标签:git tag 标签名
对某一次修订打上标签:git tag 标签名 标识符
查看所有标签:git tag
查看标签信息:git show 标签名
指定说明文字:git tag -a 标签名 -m "说明文字“
采用PGP签名标签:git tag -s 标签名 "
前提是安装了gpg
删除本地标签:git tag -d 标签名
向远端库推送标签:git push 远端库名称 标签名
推送全部标签: git push 远端库名称 --tags
删除远端库标签:git push 远端库名称 :refs/tags/标签名
网友评论