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

[经验分享] linux下git的简单运用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-28 14:31:42 | 显示全部楼层 |阅读模式
linux下git的简单运用

  windows下也有git,是git公司出的bash,基本上模拟了linux下命令行。许多常用的命令和linux下操作一样。也就是说,windows下的git命令操作和linux是完全一样的。windows环境下而且还有GUI的软件,这就更加方便操作git了,因此如果你真是“大懒蛋”的话,使用windows下的图形操作,那也是非常方便的。
  小跑题一下:
  周围很多人,学习有一个非常大的误区。以为有了良好的学习资料,就能学的很好。以为只要把所有的东西一开始就掌握,就能无往不利,以为只要认真的看视频看文档,就能将这些命令牢记于心。其实这是非常不靠谱的思想,稍微开发过软件的朋友都知道,一个软件开发的初期,会先列出主要的功能。20%的主要功能占用平时使用的80%以上,而剩下百分之80%的功能,使用的人数只有20%。那么我们学习的时候不要眉毛胡子一把抓,要分清主次。先学自己目前能够用到的,目前思维和知识结构能够接受的就行。
  好高骛远,贪婪无度最终只会导致所学的技术只是纸上谈兵的纸老虎,根本不能走进生产工作领域。
  因此,踏踏实实的去学,不好高骛远,不贪多求全是非常重要的。
  
  git的简介,我就不介绍了。
  下面是我学习中一些常用的功能,以备自己脑袋短路的使用查看。
  我的git是用yum的简便方式安装的。
  生成的配置文件是在 ~/.ssh里面,.ssh是个隐藏文件。里面保存有本台电脑的公钥和私玥。公钥复制给github上面的ssh验证,以后只要自己保留有私钥就能和远程的github进行文件同步了。
  我的git的工作目录是在 /usr/local/apache/htdoc/下面
  我再下面新建了一个文件,mkdir project
  然后cd project文件夹内,并将这个文件变成git的仓库 git init
  然后ls –al 查看project文件夹下是否有 .git的隐藏文件。这个文件就是git库文件。
  然后进行git的全局设定。
  git config --global user.name “roverliang”
  git config --global user.email mr.roverliang@gmail.com
  当然也可在每个库里面为自己的库指定用户名,命令和上面的差不多,--global(全局)去掉即可。
  生成git的密钥对。
  ssh-keygen -t rsa -C 'mr.roverliang@gmail.com'  
  ssh-keygen是ssh非对称加密。
  -t是type的意思。用那种方式加密。
  这个rsa 是非对称加密。关于这个rsa加密的我能理解,但是让我讲我讲不通。相关资料介绍放这里,感兴趣的朋友看下:http://snowolf.iyunv.com/blog/381767
  然后查看 cat ~/.ssh/id_rsa.pub  
  .ssh是一个隐藏的文件。直接查看是看不到的,要用到ls -al的命令。
  id_rsa.pub就是刚才我们生成的密钥中的公玥。复制下,放到github就能实现本地与git的互通了。
  
  git有三个分区,
  1、工作区
  2、准备提交区
  3、主版本区。
  当我们新建一个文件的时候。touch roverliang.txt
  我们可以使用git status 查看当前工作区的状态。
  git会有提示:
  (use "git add <file>..." to include in what will be committed)
  说你可以通过git add 加上文件名 将这个文件提交
  我们可以把这个文件添加到准备提交区。 git add  roverliang.txt
  然后我们再来看git status 的状态。
  (use "git reset HEAD <file>..." to unstage)
  git告诉我们,现在你可以使用 git reset HEAD 加上你的文件名的方式,将刚才提交的文件回复到未提交的状态,也就是回退。
  我们可以通过git commit –m “这里写你对文件的修改信息”
  这样我们将一个文件成功提交到版本控制区,也就是master区。
  这个时候我们继续编辑我们的roverliang.txt文件vim roverliang.txt
  在里面写上一句话:roverliang是个大坏蛋。
  然后保存。这个时候我们可以用git diff命令来比对我们工作区新修改的这个文件和我们的master区(主版本区)的那个roverliang有什么区别。
  如果修改了。会用++来表示,非常清晰。
  如果你近期提交了很多的文件,想知道自己提交了那些文件,那么我们可以用
  git log的命令来查看自己的提交日志。
  如果日志太长,我们可以使用键盘的j键来向下翻,使用k键来向上翻。如果不想看了,也可以使用q键来退出。
  如果你只想看到简明清晰漂亮的日志信息,也可以用一个非常漂亮的命令来查看。
  git log --pretty=oneline的命令来呈现。那么你的日志信息就会呈现如下的格式。
  pretty英语意思是漂亮的
  dc21f60b64db2c4f7b7dbdbed4ade5f15e78e79b 我是roverliang
  d4f773a7ea120d763551b389e3441c030126c062 jj
  794cc78900b456987d49280c3ce6b5f02a3cbba4 nol
  1c7c6a2c6bb09c816e1c85ed8481a6ba2be213e0 Create 我想做个事.text
  前面一长串的编码是你文件的唯一编码,在多人合作开发的环境下,也是区分文件修改者信息的重要依据。
  如果我们觉得主版本需要回退到添加上个文件之前的状态。
  那我们可以使用 git reset --hard HEAD^
  hard 有登陆处,硬沙滩的意思,意思就是彻底将这个版本回退到工作区。
  有硬着陆,就有软着陆。git reset –soft HEAD^ 回复到系统暂存区。
  通过git reflog   re 回退 f 文件 log 日志。reflog版本跳跃日志
  通过git diff HEAD – 文件名。比对修改信息。
  
  上面都是一些很基础的应用。
  我们可以再github网上上新建一个库房,名字比如就叫  LiangziTest
  然后在我们的库房里面把git上面的库房,作为我们提交的库房。
  我们本地的库房名字叫roverliangTest.
  然后我们切入roverliangTest这个目录里。执行git init初始化git.
  然后把远程的库房加进来。 git remote add origin git@github.com:roverliang/LiangziTest.git
DSC0000.png
  remote是远程的操作的意思。
DSC0001.png
  origin是源的意思。
  git remote add origin git@github.com:roverliang/LiangziTest.git
  整条命令的意思就是通过git 远程(remote) 添加(add) 一个源(origin) 通过git的加密传送方式(git) 位置在 github.com:roverliang/LiangziTest.git
  这样子我们就把远程的库和本地的库连接在一起了。
  使用的过程中,由于可能新建一些测试文件。这些文件提交到服务器之后,测试执行后,就不需要这些文件了。
  可是使用git add 命令,git commit  -m '添加删除文件' git push origin master 并没有 将远程的文件删除。
  git pull
  查找资料后,发现。git add 是git add 只将新建的或者已更改的文件添加到索引区。(不会添加删除的文件)
  可以使用 git -add -u 命令,然后再执行。
  
  
  

运维网声明 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-131977-1-1.html 上篇帖子: Git搭建自己的网站服务器(Linux) 下篇帖子: 【转】Install SmartGit via PPA in Ubuntu 13.10/13.04/12.04/Linux Mint
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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