git 常用操作

git远程服务器

  

  git remote add origin <url>

  取消远程服务器 关联

  git remote rm 远程仓库名 

  更新远程服务器上的分支列表

  git remote update 远程仓库名 --prune 

  查看已关联的远程服务器

  git remote show 

  显示远程仓库与对应服务器地址

  git remote -v 

  拉取远程仓库中分支到本地

  git fetch 远程仓库名 远程分支名 本地分支名

  强制 推送push 本地版本 到  远程服务器

  git push --force origin master  将本地master分支强制推送到远程仓库origin 

  将本地的git 仓库 ,覆盖远程仓库

  1.关联远程仓库  git remote add origin <url> 

  2.推送本地master分支到远程仓库,作为初始结点 git push --force --set-upstream origin master 

将本地分支与远程分支建立关联

  1.切换到需要关联的本地分支  git checkout local

  2.与远程分支建立关联      git branch -u origin/serverfix 

建立关联后 

  1 . git push ,git pull 时都不需要加上远程分支名了,只需先切换到 要进行推送或拉取的 本地分支即可

  2. 可以删除远程服务器上 这个已经关联的 远程分支  git push origin --delete 本地关联分支名

  3. 查看本地与远程分支 的关联关系 git branch -vv 

版本回退

   一 - HEAD指针,指向最后一次commit的状态 ;  二 - Index 预计的下一次提交的快照 (暂存区的索引);三 - Working directory 沙盒 (未提交到暂存区和历史记录的本地实际代码)

  git reset 版本号 [filename],默认为 --mixed模式 ,将 HEAD指针 和 缓存区的代码   设置为版本号的状态

  git reset --soft 版本号  ,仅将HEAD指针 指向版本号

  git reset --hard 版本号 ,将HEAD指针 ,缓存区代码 和 工作区代码 全都设置为 版本号的状态

  git reset --hard eb43bf file.txt 会将暂存区Index的文件和工作区的文件 状态变成 eb43bf版本的状态  

   合并中间的过多git log 

  1.将仅 将 git HEAD指针移到倒数第二个需要保存的版本号上  git reset --soft 版本号 

  2. --soft使工作区和缓存区的代码并未改变,直接提交, git commit  ,

  这时如果原来git log -10 的版本号有 1,2,3,4,5,6,7,8,9,10,而第一步中的版本号为3,现在git log -3 的显示则为 1,2,3,11 ,从而减少了中间的git log .

  将本次提交的内容,覆盖上次提交

  git commit --amend 

  如果上次提交过 git commit -m "commit last" ,然后又进行了修改,git add forgotten-file ,这时 使用 git commit --amend -m "commit second"则使用git log 查看,只有第二次的提交记录。

  撤销修改

  工作区有修改,还没提交到缓存区,撤销工作区的修改  git checkout filename 撤销指定文件的还没add 的修改  / git checkout -f 撤消所有还没add 的修改

  取消最后一次add或commit之后的修改,回到刚刚add或commit后的状态 git checkout -- filename

  撤销已经add 还没commit 的修改 git reset HEAD filename ,将缓存区的文件变为上次commit时的状态 

 

  取消对文件跟踪 

       删除暂存区中 mysite/__pycache__下的所有文件(保留本地文件夹)

  • git rm -r --cached mysite/__pycache__

  仅取消对某个文件的追踪(保留本地文件)

  git rm --cached fie.txt

   撤销刚刚的推送到远程分支

  1.将本地的分支的HEAD 回退 到 需要的版本号

  2.将这个本地的分支强制推送到远程分支 ,远程分支的状态就变为和本地分支一致。 git push --force 

提交

  git commit -am "备注内容“  相当于 git add ,git commit -m "备注内容”两步 。 不过对于新增加的文件 ,-am 不会添加进去,需要单独 git add newfile 

切换分支

  在当前分支上做出修改后并没add,这时新建分支并切换过去,然后add,commit,修改就会移到新建分支上了。原分支上不再有修改的记录

  git checkout branchname

合并分支

  合并分支前,需要切换到版本号较小的分支上,然后将有更改的分支上的内容合并到当前分支

  git merge brach2

删除分支

  git branch -d branch3  强制删除  git branch -D branch3

分支管理

  • 团队协作中,一般会有一个专门用于汇总各个开发者的远程仓库(公开库)管理者
  • 个个开发者 ,从远程公共库拉取基准代码 ,然后在本地创建分支 ,进行开发
    •   开发完成后,推送到远程分支
  • 远程仓库管理者 ,收到开发者的要求拉取合并远程分支的请求后,拉取,并合并分支到远程公开库

查看日志

  git log --oneline --decorate --graph --all 以图形简略的形式显示所有日志  

       -n 查看最近的n条日志

  --oneline 已一行的空间显示一条日志

  • git log -p -2 查看最近两次提交之间的差异
  • --graph 显示ASCII图形表示的分支合并历史
  • --stat 显示每次更新的文件修改统计信息

git diff <filename>

  • 查看文件filename 改动前和改动后的区别
  • diff 即different
  • git diff 版本号1 版本号2 --stat 查看两个版本中的有差异的文件
  • git diff 版本号1 版本号2 文件路径 查看两个版本号间的指定文件的具体差异
  • git diff 分支1 分支2 --stat 查看两个分支间的有差异的文件
  • git diff 版本号1 版本号2 文件路径 查看两个分支间的指定文件的具体差异
  • git diff 文件名 查看当前HEAD指向与工作区间 的文件的具体差异
原文地址:https://www.cnblogs.com/Ting-light/p/9259021.html