第一周周一
创建
新建文件夹
mkdir 文件名
新建文件
touch fileName (我在vscode无法使用)
查看当前路径
pwd
将当前目录变成一个git可以管理的仓库(初始化仓库)
git init
将文件添加到git仓库(暂存区)
git add readme1.txt readme2.txt //一次可以提交多个
将文件提交到当前支
git commit -m "文件名"
版本
版本回退
查看当前工作区与缓存区状态
git status
对比文件区别
git diff readme.txt
查看最近到最远的提交记录
git log
回到上一个版本
可以撤销commit
git reset --hard HEAD^ ( git reset --HEAD~100 回到上一百个版本)
回到指定版本
git reset --hard 123456 (回到指定版本号commit id,假设为123456******,git会根据commit id的前几位自动寻找对应的版本)
查看该文件内容
cat readme.text
查看每一次命令历史记录
git reflog
比较工作区
git diff readme.txt
比较暂存区
git diff --cached
撤销修改
将readme.md回退到最近一次git add 或 git commit 状态
git checkout -- readme.md
删除文件
删除
rm a.js
误删回退
git checkout -- a.js
远程仓库
添加远程仓库
关联一个远程仓库
git remote add origin git@github.com:MrXwq/aaa.git
git push -u origin master
远程克隆ssh
git clone git@github.com:MrXwq/aaa.git
远程克隆https
git clone https://github.com/MrXwq/aaa.git
分支
查看分支
git branch
创建分支
git branch aa(分支名称)
切换分支
git checkout aa
创建并切换到分支
git checkout -b aa
合并分支到当前分支
git merge aa
删除分支
git branch -d aa
删除远程分支:
git push origin -d 分支名
- 查看分支合并图
git log --graph
- 查看分支合并缩略图
git log --graph --pretty=oneline --abbrev-commit
Fast-Forward合并,分支无记录
git merge --no-ff -m "没有记录" test2(分支名字)
查看远程库详细信息
git remote -v
将最新的爬下来
git pull
将本地未push的分支提交整理成直线,利于查看
git rebase
隐藏
经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。
隐藏分支工作现场
git stash
查看隐藏分支
git stash
恢复工作现场
git stash apply
删除隐藏,恢复到隐藏前的工作现场
git stash drop
恢复到隐藏前的工作现场,相当于前两个合起来
git stash pop
恢复到指定隐藏的工作现场
git stash apply stash@{2}
标签
其实道理和commit 的commit-sha1有些相似,其实就是给当前的版本做个标记,以便回退到此版本。如果使用commit-sha1,大家都记不住那条冗长的sha1码,所以用tag标签来做记录
创建标签
git tag tag1
查看所有标签
git tag
为某次提交创建指定标签
git tag tag1 commitId
查看指定标签内容
git show
为某次提交创建标签,同时添加标签的注释
git tag -a tag1 -m "test" commitId
删除标签
git tag -d tag2
推送某个标签到远程库
git push origin tag2
一次性推送所有标签到远程库
git push origin --tags
删除远程库标签
-
第一步删除本地库标签
-
第二步从远程库删除
git push origin :refs/tags/tag2
第一周周二
设置用户名
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"
获取密钥
$ ssh-keygen -t rsa -C "your_email@youremail.com"
查看信息
$ git config --list
develop->staging->production->master
第一周周三
将当前分支完全替换master分支
git push origin develop:master -f
但是上面操作,本地的 master 分支还是旧的,通常来说应该在本地做好修改再去 push 到远端,所以我推荐如下操作
git checkout master // 切换到旧的分支
git reset --hard develop // 将本地的旧分支 master 重置成 develop
git push origin master --force // 再推送到远程仓库
撤销上一次merge
先git reflog 查看上次提交的码
再git reset --hard 0bd1a4c2
也可以直接git reset --hard HEAD^
删除在本地有但在远程库中已经不存在的分支
git remote show origin //查看哪些已经被删除了的
git remote prune origin //删除
新建项目在之前已有项目的基础上,不复制代码,保留原有的git 提交记录
git remote add upstream git@xxx git fetch upstream git checkout upstream/release/1.15.0 git checkout -b release/1.15.0