#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使用集锦