git 操作记录

实际使用基础操作记录

 git的小游戏可以方便理解

https://learngitbranching.js.org/?locale=zh_CN

git 分四个区域    workspace(工作区)     index(暂存区) 与 local repositorty(本地仓库)   remote(远程仓库)

  工作区是自己代码的地方  add 之后回到index(暂存区)

  暂存区(stage/index)是存放改动的地方 commit 回到 本地仓库 (local repostorty)

  本地仓库 是安全存放数据的位置,commit的都在这HEAD指向当前分支,push之后会到远程仓库(remote)

  

git rebase -i HEAD~4 (在前面四个提交记录中随便更换位置选择性合并)

git revert  版本号 (去除之前某一个commit但后续的commit保留)

git push origin --delete 分支名   (删除远程分支)

git init 初始化本地分支

git remote (查看远程分支信息  )

  git remote -v (查看详细信息)

git remote add origin https://xxx   (本地先添加远程仓库)

git push -u origin master   (向远程仓库推送)

git push - -set-upstream origin Link  (向远程仓库推送分支 分支名字为Link )

git checkout Link 切换分支到Link (前提是Link分支存在)

git checkout -b Link   建立并切换到分支Link 

git checkout -- 文件名 (把对文件的修改恢复到未修改状态,如果是checkout . 将会恢复所有修改的文件)

git add 文件名 (工作区文件加入版本库中)

git commit -m ” 提交信息“ (提交修改到本地仓库)

git commit --amend (可以修改提交注释)

git merge --abort  (撤销merge 但是未add的代码)

git checkout .  (撤回所有修改,还未add的修改)

git reset  HEAD (恢复到上次到状态,对于add未commit的状态的,回到add操作之前)

  git reset --mixed HEAD^  (恢复上次提交,取消commit ,也取消add ,暂存区修改仍在)

  git reset HEAD^ (同上)

  git reset --soft HEAD^  (执行后代码修改不变,commit被回退。不撤add )

  git reset --hard HEAD^  (执行后暂存区代码消除,commit被回退。不撤add )

  git push origin HEAD --force  (强制推送到远程分支)

git branch 查看本地分支

  git brancn -r  查看远程分支

  git branch -a  查看所有分支

     git branch -d 分支名 (删除本地分支)

  git branch -D 分支名 (强制删除分支)

git push origin - -delete 分支名  (删除远程分支)

git rm -rf .   (慎用  用来删除分支内容  "." 匹配此路径下所有文件 -rf循环强制删除  可以用来创建空分支并且推到远端)

git log 查看提交日志 (后面加- - stat查看修改的具体文件)(后缀还有很多可用此处省略)

  git log -p 展示更改详情

  git log --pretty=oneline (只显示版本号和具体的操作)

  git reflog (可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作))

git push origin HEAD --force (强制推送到远端,是在使用ret恢复本地再恢复远端的操作)

git blame 文件名 (查看具体文件更改)

git show 版本号  展示指定版本具体操作

git reset - -soft 版本号  (回退到指定版本 撤销commit 不撤销add)

git reset - -hard 版本号  (回退到指定版本 撤销commit 也撤销add)

git revert -n 版本号(撤销此版本的commit修改,但是之后的版本修改保留,之前哪个commit不需要或错误可以使用)

git stash save "信息"  暂存当前改变   文件要add到版本库中不然无法保存、

  git stash list  (显示暂存的列表)

  git stash apply  (恢复刚刚存储的内容,但是不删除)

  git stash pop (释放暂存的第一个,并删除内容)

git diff 分支名字 (比较分支差异)

  git diff HEAD - - 文件名 可以查看工作区和版本库里面最新版本的区别)

  git diff  {查看 workspace(工作区) 与 index(暂存区)的差别}

  git diff --cached  {查看 index(暂存区) 与 local repositorty(本地仓库) 的差别}

  git diff HEAD {查看 workspace(工作区) 和 local repository(本地仓库) 的差别}

git merge 分支名  (合并分支 应该是合并本地仓库已经commit的代码)

*** git cherry-pick 版本号  (将指定的提交(commit)应用于当前分支。)

       git cherry-pick A..B  (将A到B的一系列commit都应用于当前分支,但是A不包含在其中)

    git cherry-pick A^..B (包含A的commit   A B 顺序要正确)

    冲突中断 ,解决后add添加文件后 git cherry-pick - -continue继续合并 ,合并的版本必须为本地存在的commit版本,合并其他人的远程版本无效

    git cherry-pick - -abort (放弃合并 回到之前)

git fetch (从远程获取最新版本到本地,不会自动合并分支)

git pull (默认行为是git fetch + git merge)

git rebase(重新定义起点)

  git rebase --abort (回到rebase之前) 和 git merge --abort 类似(回到merge 之前)

  git rebase --skip (将引起冲突的commits丢弃掉,无视其他人的修改)

  git rebase --continue (用于修复冲突)

git pull --rebase (会将本地当前分支里的每个提交(commit)取消掉,然后把将本地当前分支更新为最新的"origin"分支)***

原文地址:https://www.cnblogs.com/9527s/p/13341971.html