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

[经验分享] git 的一些学习记录

[复制链接]

尚未签到

发表于 2018-9-17 13:37:24 | 显示全部楼层 |阅读模式
git init      #初始化  
git config --global user.name "mortal"
  
git config --global user.email "mortal@gmail.com"
  
git add .     #添加要提交的文件
  
git commit -m "initial"     #提交一个版本
  
git status          #目前状态
  
git diff         #可以比对文件
  

  
在git提交环节,存在三大部分:working tree, index file, commit
  

  
working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
  

  
index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file 就和working tree同步了。
  

  
commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。
  

  
总结一下:
  
git diff:        #是查看working tree与index file的差别的。
  
git diff --cached:    #是查看index file与commit的差别的。
  
git diff HEAD:        #是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)
  

  

  
git log       #查看log
  
git log --pretty=oneline  #只显示一行,没有author,date
  
git log --graph --pretty=oneline --abbrev-commit  #图形化,易于理解
  
git reset --hard HEAD^      #重回上一个版本
  
git reset --hard HEAD^^     #重回上上个版本
  
git reset --hard HEAD^3     #之前第三个版本。
  
git reflog                    #回到过去之后回不到未来了,不怕,这里有记录
  
git reset --hard f8c5ef2        #返回版本f8c5ef2
  

  
于诸多文件中除去某个不想提交的文件,简洁的提交
  
git add .
  
git status
  
git rest HEAD filename
  
git commit -m "sthing"
  
git checkout -- filename     #让这个文件回到最近一次git commit 或git add时代状态  命令中的-- 很重要,没有--就变成了创建一个新分支
  

  
只是修改了工作区的文件回滚:
  
git checkout -- .
  

  
如果已经git add  . 需要回滚:
  
git reset HEAD .
  
git checkout -- .
  

  
如果不仅添加还commit了的话。
  
git reset --hard HEAD^ .
  
git rm filename         #删除某个文件
  
git commit -m "remove filename"
  
git checkout -- filename   #git checkout 其实是用版本库里的版本替换工作区的版本。无论工作区是修改还是删除都可以“一键还原”
  

  
git checkout -b dev     #创建dev分支,并切换到dev分支
  
git branch                 #查看分支
  
git branch dev            #创建分支
  
git branch -d dev        #删除分支
  
git branch -D dev        #强制删除一个分支
  
git checkout dev         #切换分支
  
git merge dev            #合并dev分支到master
  

  
git stash                #保留一个stash
  
git checkout master        #切换master
  
git checkout -b issue-01        #创建并切换
  
git add filename                #修改后添加到index区
  
git merge --no-ff -m "merged bug fix 01"     #issue-01合并分区,修复bug
  
git branch -d issue-01        #删除分区
  
git checkout dev            #切换分区
  
git stash list                #查看藏匿区列表
  
git stash apply stash@{0}  #恢复stash但不删除
  
git stash drop stash@{0}   #删除stash
  
git stash pop               #恢复并删除
  

  

  
某一分支点两个版本号之前的内容
  
git diff f1a2c3 a4c5b6 > my.diff  #比较需要注意顺序
  
git apply my.diff                     #恢复
  

  

  

  
git remote
  
git remote -v
  
git push origin master        #推送master分支
  
git push origin dev            #推送dev分支
  
git clone git@github.com:michaelliao/learngit.git #克隆一个版本到本地
  
git branch
  
git checkout -b dev origin/dev
  
git commit -m "sthing"
  
git pull
  
git branch --set-upstream dev origin/dev
  
git pull
  
vim filenames
  
git commit -m "merge & fix sth"
  
git push origin dev
  

  
搭建git服务器
  
yum install git
  
useradd -d /homg/git git -s /usr/bin/git-shell
  
git init --bare admin.git
  
chown -R git:git admin.git
  
mkdir /home/git/.ssh
  
chown 700 /home/git/.ssh
  
chown 640 /home/git/.ssh/authorized_keys #我之前设置成600一直连接不上,也是找了好久,才发现要设置成640 centos5.8版本
  

  

  
git客户端1
  
git clone ssh://git@proxy.git.com:9831:/srv/admin.git
  
git add .
  
git commit -m "test"
  
git remote -v
  
git push origin master
  
git log
  

  
git 客户端2
  
git pull ssh://git@proxy.git.com:9831:/srv/admin.git $直接拉取,这种方式会不能提交
  
git remote -v
  
git reflog
  
git fetch origin master     #从远程的origin仓库的master分支下载代码到本地的origin master
  
git log -p master origin/master        #比较本地仓库和远程仓库的区别
  
git merge origin/master                #合并分支



运维网声明 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-588467-1-1.html 上篇帖子: Git介绍及命令使用 下篇帖子: git的日常应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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