常用的git命令

基础操作

git add . // 将文件添加到缓存区
git status  // 查看状态
git commit -m "注释内容"  //  将暂存区文件提交至版本库
git log // 查看近期提交状态
git branch // 查看分支
git branch dev // 新建 dev 分支
git checkout dev // 切换到 dev 分支
git push -u origin 分支名称 // 第一次提交分支(推送到云端origin仓库中)
//注意:必须切换到此子分支下才能提交!!!-u就表示第一次, 
 
git merge 分支名称 // 必须先切换到主分支!!!然后在合并分支
// 如果不下心在master分支上写了代码,直接git checkout -b test 就能将修改的文件分配到test分支上,然后在 git add 等操作

日志

git log // 查看历史记录
git log -p // 查看详细历史
gi log --stat // 查看简要统计
git show // 查看当前的 commit 的改动内容
git show comiitID // 查看某个具体的 commit 的改动内容
git show comiitID a.txt // 看指定 commit 中的指定文件
git diff // 比对工作目录和暂存区
git diff --staged // 比对暂存区和上一条提交
git diff HEAD // 比对工作目录和上一条提交
git reflog // 查看记录的每一条指令

clone分支

git checkout dev // 切换到 dev 分支
git checkout -b dev // 创建并立即切换到dev子分支

git branch -al // 查看所有本地仓库分支和远程分支
git checkout -b 本地demo分支 origin/远端demo分支 // 检出远程的demo分支到本地

推送分支

git push origin 本地分支:远程分支 // 提交本地分支到远程分支
git push origin :demo // 推送本地的空分支(冒号前面的分支)到远程origin的demo(冒号后面的分支)(没有会自动创建)

删除分支

git branch -d bug // 删除本地的bug分支
git push origin --delete demo // 删除远程分支demo
git强制覆盖
git fetch --all
git reset --hard origin/master
git pull

临时需要打包,暂时将本地更改推到暂存区,打包完成后恢复之前的本地更改

git stash // 「藏匿」临时存放工作目录的改动
git stash // 将新建的文件也临时存放
git stash apply // 可以保留 stash 空间,避免 pop 完产生奇怪的问题
git stash pop // 恢复,并三处这次stash

变基

rebase——在新位置重新提交,展开来说就是,把你指定的 commit 以及它所在的 commit 串,以指定的目 标 commit 为基础,依次重新提交一次。

git checkout branch1
git rebase master

另外,在 rebase 之后,记得切回 master 再 merge 一下,把 master 移到最新的 commit :

git checkout master
git merge branch1  // 重要的!!
git rebase --help // 查看帮助,里面有一张图


多次commit未push

git add a.txt // 更新一个文件内容
git commit // commit 到暂存区,没有push
// 重新编辑 a.txt
git add a.txt // 更新一个文件内容
git commit --amend // 该命令并不会再生成一个commit,而是在之前的commit修改

amend 就是重新修改 commit

删除提交错误的push

错误提交到了版本库,此时无论工作区、暂存区,还是版本库,这三者的内容都是一样的,这个时候,我们必须撤销版本库的修改才能解决问题!

git reset有三个选项,--hard、--mixed、--soft

// 仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID

 具体步骤:

git log // 查看log日志,复制撤销的commitID
git reset --hard commitID // 强制撤销, soft hard mixed 视情况而定
git push origin HEAD --force // 推送到远端

其他操作

撤销错误添加到暂存区里的文件 命令行 : git rm --cache 文件名

上面代码仅仅删除暂存区的文件而已,不会影响工作区的文件 

删除暂存区和工作区的文件 命令行:git rm -f 文件名

 

出错的内容在你自己的 branch,修改已经push了的commit信息注释

  • step1:使用【git commit --amend】命令,会进入到vim编辑器。
  • step2:输入【i】,即进入编辑模式,此时编辑提交信息。
  • step3:编辑好之后,按键【Esc】,输入【:wq】,即保存和退出。
  • step4:输入【git push -f】强制提交。
  • 操作完之后,再看提交记录,即可看到修改的注释信息。

出错的内容已经合并到 master,恢复一个版本

git revert HEAD^

上面这行代码就会增加一条新的 commit ,它的内容和倒数第二个 commit 是相反的,从而和倒数第二个 commit 相互抵消,达到撤销的效果。

git revert HEAD //撤销最近一次提交
git revert HEAD~1 //撤销上上次的提交,注意:数字从0开始
git revert 0ffaacc //撤销0ffaacc这次提交

git追踪文件夹/文件名称更新

git mv -f oldfolder newfolder
git add -u newfolder (-u选项会更新已经追踪的文件和文件夹)
git commit -m "changed the foldername whaddup"
git push origin yourBranch

 

git强制更新并覆盖本地修改

1.git fetch --all //从远程拉取最新的代码 不merge

2.git reset --hard origin/develop //使用指定分支的代码(此处develop)强制覆盖代码

3.git pull //从远程拉取最新的代码 自动merge

git工作流

原文地址:https://www.cnblogs.com/houfee/p/10131607.html