git使用集锦

技术库 小李 1457浏览

#GIT命令

  • 切换服务器地址
git remote set-url origin https://git.oschina.net/xxxx/yyyy.git
  • 查看当前分支
git branch
  • 添加所有文件,注意有点
git add .
  • 提交
git commit -m 'new modify'
  • 推送到远端
git push -u origin develop
  • 删除本地分支
git branch -d test
  • 配置邮箱和姓名
git config --global user.email "123123@qq.com"
git config --global user.name "xxxx"
  • 本地所有修改的。没有的提交的,都返回到原来的状态
git checkout .
  • 把所有没有提交的修改暂存到stash里面,再弹出
git stash
git stash pop
  • 返回到某个节点,不保留修改。
git reset --hard HASH
  • 返回到某个节点。保留修改
git reset --soft HASH
  • 显示日志
git log
  • 远程分支被删除,本地提示 ‘git remote prune origin’  to remove any old, conflicting branches进执行
git remote prune origin

 

#GIT项目迁移

1,从github.com或bitbucket.org到oschina.net迁移,需要先将仓库变为分开状态再导入方式到新仓库中。

2,从一个组织转入另一组织,不在同一账号可通过命名空间转,同一账号时需要先将项目转入到当前个人账号下,才有转到组织操作

3,同一组织中当要复制一个仓库时,使用fork会在个人账号下新建一项目,若要复制到同一组织的项目中,可以使用导入方式

 

#GIT撒销提交

Git的几种状态

未修改
       原始内容
已修改    ↓   
       工 作 区
已暂存    ↓    git add
       暂 存 区
已提交    ↓    git commit
       本地仓库
已推送    ↓    git push
       远程仓库

注意:下面所有命令每一个代码段是相互独立的,为了解决一个问题,请不要使用多个代码段。所有命令均经过本人测试,由于测试环境是简单的Git仓库没有过多的数据,可能在复杂环境回出现错误。如发现问题请直接评论区指出。请仔细分析使用情况,丢失数据与本人无关。

已修改 未暂存

已经修改了文件,还未进行git add
即工作区的内容不想要了。

  • 恢复方法

使用以下任意命令

git checkout .
git checkout -- <FILENAME>
git reset --hard

已暂存 未提交

已经进行了git add,还未进行git commit
即暂存区的内容不想要了

  • 恢复方法

使用以下任意命令

git reset
git checkout .
git reset --hard
git reset HEAD
git reset HEAD -- <FILENAME>

已提交 未推送

已经进行了git commit,还未进行git push

  • 恢复方法

使用远程仓库覆盖本地仓库

git reset --hard origin/master

已推送

已经进行了git push

  • 恢复方法

回滚本地仓库,强制推送覆盖远程仓库

git reset --hard HEAD^
git push -f

其他情况

  • 丢弃某个节点后的全部提交

即HEAD指针指向该节点

git reset --hard <COMMITID>

本地看不到远端分支解决方法

在config中将fetch = +refs/heads/master:refs/remotes/origin/master改为fetch = +refs/heads/*:refs/remotes/origin/* ,再执行 git remote update origin –prune

转载请注明:清韵逸-博客生活分享 » git使用集锦