git status 可以时刻掌握仓库当前的状态
git diff 文件名 查看文件变化查看diffrent
git add ——
git commit -m “修改说明”
git log 命令显示从最近到最远的提交日志
git log --pretty=online 简略显示日志
git log --pretty=oneline --abbrev-commit 找到历史提交的commit id
git reset --hard HEAD^ 回退到上一个版本
cat —— 一次性在终端显示所有命令
git reset --hard 版本号(commit id) 回到某未来版本(因为回退导致log中不存在了的)
git reflog 记录你的每一次命令
工作区、版本库(暂存区stage、master分支)
git add实际上就是把文件修改添加到暂存区
git commit实际上就是把暂存区的所有内容提交到当前分支
git diff HEAD – 文件名 可以查看工作区和版本库里面最新版本的区别
每次修改文件 如果不用git add到暂存区,就不会加入到commit中
git checkout – 文件名 将文件的最近一次修改全部撤销,回到最近一次git commit或者git add时的状态
可直接丢弃工作区的修改
git reset HEAD —— 可以将暂存区的修改撤销掉(unstage)重新放回工作区
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
git rm 用于删除一个文件 并且git commit -m “修改说明” 这样文件就从版本库中被删除了
git checkout – 文件名 删错文件,但版本库中还有,可以将误删的文件恢复到最新版本
git remote add origin git@github.com:账户名/某仓库.git 在本地仓库下运行此命令,关联github某仓库(远程库的名字就是origin)
git push -u origin master 把本地库的所有内容推送到远程库上(第一次提交)(-u将本地master分支与远程master分支关联起来)
git push origin master (以后提交)只要本地作了提交,就可将本地master分支的最新修改推送至github
git clone 克隆仓库(ssh协议比http协议快)
git checkout -b dev 创建dev分支并切换到dev分支上(git branch dev 创建dev git checkout dev 切换dev)
git branch 查看当前分支
git checkout master 切换回到master分支
git merge dev 将dev分支的工作成果合并到master分支上(git merge命令用于合并指定分支到当前分支)
git branch -d dev 删除dev分支
git switch -c dev 创建并切换到dev分支(新命令)
git switch master 切换到已有的master分支
git merge --no–ff -m “修改说明” dev 合并dev分支且禁用fast forward(强制禁用fast forward模式,git会在merge时生成一个新的commit,这样可以从分支历史上看出分支信息)
git stash 存储当前工作状态
git status 查看工作区
git stash list 列举查看工作现场保存地址
git stash apply 恢复工作现场(但stash内容并不删除)git stash drop 删除stash内容
git stash pop 恢复工作现场的同时把stash内容也删除了
git cherry-pick <commit版本号> 在master分支上修复bug,想要合并到当前dev分支,用此命令把bug提交的修改复制到当前分支,避免重复劳动
git branch -D 文件名 丢弃一个没有被合并过的分支,通过此命令强行删除
git remote 查看远程库的信息 git remote -v 查看更详细的远程库信息
git checkout -b dev origin/dev 要在dev分支上开发,就必须创建origin的dev分支在本地,用此命令创建本地dev分支
总结:
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin 分支名 ,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b 分支名 origin/分支名,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream 分支名 origin/分支名;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
git tag 标签名v1.0 打新标签
git tag 查看所有标签
git tag 标签名 某commit id 根据提交版本号给某个提交打标签
git show 标签名 查看标签信息
git tag -a 标签名 -m 说明文字 某commit id 可以创建有说明的标签
git tag -d 标签名 可以删除打错的标签
git push origin 标签名 推送某个标签到远程
git push origin --tags 一次性推送全部尚未推送到远程的本地标签
git tag -d 标签名 (删除本地标签) git push origin :refs/tags/标签名 (删除远程标签) 若标签已经推送到远程,要删除远程标签首先删除本地标签,然后再从远程删除