git笔记
版本创建
git初始化, 设置config, 生成ssh-key
git init //初始化仓库
git config --global user.name="your name"
git config --global user.eramil ="youremail@example.com"
ssh-keygen -t rsa -C "youremail@example.com" // 生成rsa 公司钥, 公钥添加到github,gitee等远程仓库,即可开启ssh连接方式拉取提交代码
两种方式建立远程库与本地库的联系
1. 先创建远程库,然后 git clone git@github.com:<accoutn>/<repoName>.git
2. 先在本地初始化,然后关联远程库
git remote add origin git@server-name:path/repo-name.git;
git push -u origin master //第一次推送master分支的所有内容;
git push origin master;
过程操作
git status
git clone
git add <path/file>
git commit -m "commit message"
git push
git pull
git log //显示本地版本库提交记录
git reflog //显示操作日志,可用来查找commitID,然后穿梭版本
git checkout <path/file> //用于撤销没有添加到暂存区的修改, 注意与该命令与checkout -b <branchname>的区别
git restore <path/stagedFile> //使其回归到为添加到暂存区时的状态
// pull = fetch+merge
git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
git fetch <远程主机名> <分支名> //注意之间有空格
git fetch origin master
git log -p FETCH_HEAD
git diff FETCH_HEAD
git merge FETCH_HEAD
git diff //此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异, 也就是暂存的文件修改之后还没有再次暂存起来的变化内容。
git diff --cached //查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
git diff --staged //查看已经缓存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
git diff HEAD //显示工作版本(Working tree)和HEAD的差别
git diff topic master 或 git diff topic..master //直接将两个分支上最新的提交做diff
git diff topic...master //输出自topic和master分别开发以来,master分支上的changed。
git diff --stat //查看简单的diff结果,可以加上--stat参数
git diff test //查看当前目录和另外一个分支的差别
git diff HEAD^ HEAD //比较上次提交commit和上上次提交
git diff SHA1 SHA2 // 比较两个历史版本之间的差异
git stash save "save message" //执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git stash list //查看stash了哪些存储
git stash show //显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p //显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash apply //应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash pop //命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash drop stash@{$num} //丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear //删除所有缓存的stash
版本控制 (版本穿梭,标签管理)
git reset --hard <commmitID>/<tag>
git rebase //让版本的提交记录不出现分叉,体现为一条直线的版本提交记录
git tag //查看所有标签
git show <tagname> //查看指定标签信息
git tag <tagname> //在当前HEAD打上标签
git tag -a v0.1 -m "version 0.1 released" 1094adb // -a 指定标签名, -m指定描述信息
git push origin <tagname> // 可以推送一个本地标签;
git push origin // --tags可以推送全部未推送过的本地标签;
git tag -d <tagname> // 可以删除一个本地标签;
git push origin // :refs/tags/<tagname>可以删除一个远程标签。
版本分支 (分支管理)
git branch //查看本地所有的分支
git branch -r //查看远程所有分支
git branch -a //查看本地和远程的所有分支
git branch <branchname> //创建分支
git switch <branchname> //切换分支
git checkout <branchname> //切换分支
git switch -b <branchname> //切换到指定分支,若没有则创建并切换
git checkout -b <branchname> //切换到指定分支,若没有则创建并切换
git branch -m <oldbranch> <newbranch> //重命名本地分支
git branch -d <branchname> //删除本地分支
git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
git push origin:<branchname> //删除后推送至服务器
git merge <branchname> //合并指定分支<brachname>到当前分支
git 的一些选项快捷键
-d = --delete
-D = --delete --force
-f = --force
-m = --move //移动或重名名
-M = --move --force
-r = --remote
-a = --all

浙公网安备 33010602011771号