设为首页 收藏本站
查看: 624|回复: 0

[经验分享] git操作指南整理归纳

[复制链接]

尚未签到

发表于 2018-1-13 14:04:25 | 显示全部楼层 |阅读模式
  git操作指南
  mkdir learngit   //创建一个文件夹
  cd learngit    //切换当前目录
  pwd     //显示当前目录完整路径
  git init   //初始化目录
  ls -ah   //显示当前目录所有文件,包括隐藏文件
  cd.>readme.txt  //创建一个空文件
  git add readme.txt  //把文件添加到git仓库
  git commit -m “wrote a readme file”  //提交文件,加上改动说明
  git status  //查看当前仓库文件改动状态
  git diff    //是工作区(work dict)和暂存区(stage)的比较
  git diff --cached  //是暂存区(stage)和分支(master)的比较
  修改文件内容后git status会提示use "git add" and/or "git commit -a" 注意先add后commit,不可以直接commit
  git log   //查看git提交记录,包括时间和提交人等详细信息
  git log --pretty=oneline  //只查看版本号和提交说明
  git reset --hard HEAD^  //回滚上个版本
  git reset --hard HEAD^^   //回滚上上个版本
  git reset --hard HEAD~100  //回滚前100个版本
  git reset --soft HEAD //回退时不重置缓存区和工作区
  git reset --mixed HEAD //回退时重置缓存区, 默认选项
  git reset --hard HEAD //回退时重置缓存区和工作区
  git reset //不指定HEAD, 用来清空缓存区的修改
  git reset filename //清空缓存区指定文件的修改
  git reset --hard //不指定HEAD, 用来清空工作区和缓存区的修改
  git reset --hard filename //清空工作区和缓存区指定文件的修改
  cat readme.txt  //查看文件内容
  回滚后如果想撤回,有两种方式
  1)需要在没有关闭原来的终端窗口,找回最新的版本号,输入前面几位数字,例如
  git reset --hard ec6980a
  2)关闭了终端窗口,重新打开,输入git reflog ,查看操作的每一条记录,找回版本号回滚
  git checkout -- file //撤消工作区操作,有两种情况,1、未添加到缓存区前,是撤消本地工作区修改,2、已添加缓存区后,是撤消缓存后的修改,还原缓存的版本
  git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
  git checkout branch //切换branch, 同时重置缓存区和工作区, 如果工作区有修改没有提交, 需要先commit或stash
  git checkout branch --force //切换branch, 同时重置缓存区和工作区
  git checkout --force //不指定branch, 用来清空工作区的修改(缓存区不变, 如果之前有add, 则工作区与缓存区一致)
  git reset HEAD fileName  //可以把暂存区的修改撤销掉(unstage)
  rm test.txt  //文件管理器上删除文件,注意本地删除要与仓库对应
  git rm text.txt   //删掉远程仓库文件,然后提交git commit
  git checkout -- test.txt //假设本地rm误删了文件,可以用指令从仓库复制一份最新到本地,用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
  ssh-keygen -t rsa -C “liwenxin@foreveross.com"  //设置本地关联的帐号信息 ,一路回车,不要设密码直接为空。
  open ~/.ssh //mac打开主目录的ssh
  cd ~/.ssh    //如果前面的步骤不小心输入了密码,可以参照以下方式重新设为空密码

  ssh-keygen -p -f>  git remote add origin git@github.com:gz-jam/learngit.git  //替换成你自己的GitHub账户名,本地关联远程库
  git remote rm origin //如果关联错了 或者 需要重新绑定
  git remote add origin git@github.com:michaelliao/learngit.git  //可以重新绑定
  git push -u origin master  //本地库的所有内容推送到远程库,输入yes确认,把当前分支master推送到远程,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
  git push origin master   //第二次开始可以不用 -u
  git clone git@github.com:michaelliao/gitskills.git  //克隆远程仓库,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。例如https://github.com/gz-jam/gitskills.git
  git checkout -b dev //创建分支并切换当前分支到dev,相当于执行了两条指令,如git branch dev 和 git checkout dev
  git branch //查看当前项目的所有分支,前面有*代表当前生效的分支
  git merge dev  //用于合并指定分支到当前分支
  git branch -d dev  //合并后可以考虑删除多余项目分支
  git branch -D dev  //分支提交文件未合并,如果删除会提示尚未合并,是否要强行删除 注意大写D
  当两边分支各自在相同文件有提交内容,Git无法执行“快速合并”,此时需要先执行git status,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,调整完后重新git add 文件,然后git commit提交文件即可解决冲突
  git log --graph --pretty=oneline --abbrev-commit  //可以看到分支的合并情况
  git log --graph //这命令也可以看到分支合并图
  git merge --no-ff -m "merge with no-ff" dev  //禁用Fast forward模式,Git就会在merge时生成一个新的commit
  git stash  //当前分支工作未完成但又不想提交仓库,可先用指令保存,保证切换其它分支不会导致代码丢失
  git stash list //查看stash内容,恢复的方式有两种,一是用git stash apply stash@{0}恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了
  git remote  //查看远程库的信息
  git remote -v   //显示更详细的信息
  git push origin master //推送分支,就是把该分支上的所有本地提交推送到远程库,推送时,要指定本地分支
  本地新建的分支如果不推送到远程,对其他人就是不可见的
  从本地推送分支,使用git push origin branch-name
  git checkout -b dev origin/dev //创建远程origin的dev分支到本地,默认分支master
  git push  //发生冲突的时候,先git pull拉取代码
  git pull //如果失败的话,提示“no tracking information”,原因可能是没有指定本地dev分支与远程origin/dev分支的链接
  git branch --set-upstream-to=origin/dev dev  //设置dev和origin/dev的链接
  合并有冲突,需要手动解决,解决的方法如前面所说,git status,然后手动修复,再git add 和git commit ,最后git push
  git tag v1.0  //commit号太长不好记,可以在分支上打标签
  git tag v0.9 6224937  //在分支上为指定的的commit号打上标签
  标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息
  例如  git show v0.9

  git tag -a v0.1 -m "version 0.1>  git tag -d v0.1  //标签打错了,也可以删除
  创建的标签都只存储在本地,不会自动推送到远程。如果要推送某个标签到远程,使用命令git push origin <tagname>
  例如: git push origin v1.0
  或者,一次性推送全部尚未推送到远程的本地标签
  例如: git push origin --tags
  如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,git tag -d v0.9;然后,从远程删除。删除命令也是push,但是格式如下git push origin :refs/tags/v0.9 或 git push origin --delete tag v0.9

  git tag -s v0.2 -m "signed version 0.2>  请查考:http://airk000.github.io/git/2013/09/30/git-tag-with-gpg-key
  git tag -s v4.0 -u "配置GPG时填写的名字" -m "描述详细(一定要加,不写会进入VI再写。)"
  创建使用指定的key签名的标签,需要使用 -u 参数来指定key:

  git tag -u "rangu.dl" -s v0.2 -m "signed version 0.2>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434675-1-1.html 上篇帖子: git小技巧--如何从其他分支merge个别文件或文件夹 下篇帖子: Vip灬cnblog
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表