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

[经验分享] Git常见相关知识与命令

[复制链接]

尚未签到

发表于 2018-9-17 09:21:11 | 显示全部楼层 |阅读模式
安装git程序
  ContOS
  Yum install –y epel-release
  Yum install –y git
  Ubuntu
  Sudo apt-get install git
  Windows上安装
  https://git-scm.com/download/win
  安装完成以后还需要最后一步设置
  git config --global user.name "Qiang"//比如Qiang
  git config --global user.email "zqwang121@sina.com"//写入到你的邮箱
创建版本仓库并推送文件
  Mkdir /home/gitroot   //创建目录
  Cd /home/gitroot     //进入目录
  Git init //用命令初始化。让这个目录编程git可以管理的仓库
  Ls –a //可以看到.git目录
  Echo –e “QIANG”>1.txt //创建一个文件1.txt
  Git add 1.txt //把1.txt添加到仓库中
  Git commit –m “add new file 1.txt” //add完了必须要conmit才算真正把文件提交到git仓库里
  Echo –e “QIANG QIANG”>> 1.txt //更改1.txt
  Git status //查看当前仓库中的状态,比如是否有改动文件
  Git checkout --1.txt//将仓库中的1.txt覆盖本地的1.txt
  Git diff 1.txt /可以对比1.txt本次修改了什么内容,相比仓库里面的版本
删除文件
  1.       git add test.txt
  2.       git commit -m "add test.txt"
  3.       rm test.txt
  4.       git status
  5.       git rm test.txt
  6.       rm 'test.txt'
  7.       git commit -m "remove test.txt"
上传当前目录下所有文件
  1.       git add .
  2.       git commit -m "updata all"
  3.       git push
版本的变更
  多次更改1.txt 并进行git add,git commit操作
  Git log //可以查看所有提交git仓库的仓库记录操作
  Git log –pretty=oneline 一行一行显示
  通过git log可以查看到过去提交的所有版本,所以根据这个log可以指定回退某个版本
  Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //可以回退该版本,这里是长字符串,可以简写(前5个字符)
  Git reflog //可以显示所有的版本
文件恢复
  当修改1.txt 发现修改的不对,想修改上一次提交的状态
  Git checkout –1.txt//恢复到上一次提交的状态
  如果1.txt修改完成,保存后,git add 1.txt了 但是没有git commit,再想回退到上一次提交是的状态,可以使用
  Git reset HEAD 1.txt
  然后再
  Git checkout –1.txt
文件删除
  Echo “QIANG” >2.txt
  Git add 2.txt
  Git commit –m “add new file 2.txt”
  Rm –f 2.txt
  Git status
  Git rm 2.txt
  Git commit –m “delete 2.txt”//彻底删除2.txt
创建一个远程的仓库
  1.先注册一个免费的仓库https://github.com/或https://git.oschina.net/
  2.权限认证,添加key
  github :Setting->SSH and GPG keys->new SSH key->title和key输入进去
  oschina:个人资料->SSH公钥->添加公钥->标题和公钥输入进入
  生成密钥对:ssh-keygen
  Liunx: Cat /root/.ssh/id_rsa
  Cat /root/.ssh/id_rsa.pub //公钥
  Windwos:Cat c:/Users/Cmd/.ssh/id_rsa
  Cat c:/Users/Cmd/.ssh/id_rsa.pub
  添加成功收到邮件
  3.创建一个创建链接仓库
  3.1 Mkdir /home/gitroot   //创建目录
  3.2 Cd /home/gitroot     //进入目录
  3.3 Git init             //用命令初始化。让这个目录编程git可以管理的仓库
  3.4 git remote add origin 仓库地址
  git remote add origin git@git.oschina.net:zhiqiangwang/Qiang.git
  3.4.1 origin是你的仓库的别名 可以随便改,但请务必不要与已有的仓库别名冲突
  3.4.2仓库地址一般来讲支持
  3.5 Echo –e “QIANG”>Qiang.txt //新建Qiang.txt
  3.6 git add Qiang.txt
  3.7 git commit –m “add Qiang.txt”
  3.8 git push –u origin master //把本地的Qiang仓库推送到远程Qiang
  3.9 Echo –e “QIANG QIANG”>>Qiang.txt //在Qiang.txt后面追加QIANG QIANG
  3.10 git add Qiang.txt
  3.11 git commit –m “update Qiang.txt”
  3.12 git push //把本地的Qiang仓库再次推送到远程Qiang
  克隆一个远程的仓库
  Git clone git@git.oschina.net:zhiqiangwang/Qiang.git
分支管理
  Git branch 查看分支
  Git branch wang 创建分支
  git checkout wang 切换wang分支
分支合并
  Git merge wang //把wang分支合并到master
  合并常见的问题
  1. 如果master分支和wang分支都对Qiang.txt进行编辑,当合并时提示冲突,许先解决冲突才可以继续合并
  2.  解决冲突的方法就是在master分支下,编辑Qiang.txt,改为wang分支里面的Qiang.txt的内容,然后提交Qiang.txt,在进行合并
  3.  如果master分支更改的内容是我们想要的,可以编辑Qiang.txt内容,改为想要的然后提交,切换到wang分支,然后合并 master分支到wang分支即可。Merge后面跟的分支名字一定是最新的分支
  4.  Git branch –d wang //删除分支
  5.  Git branch –D wang /如果分支没有合并,强制删除
使用分支的原则
  Master分支是非常重要的,线上发布代码的时候才用到这个分支
  Dev分支就是专门用于开发的,重要发布线上之前才会把dev分支合并到master
  开发人员应该才dev的基础上在分支成个人分支,个人分支里面开发代码,然后合并到dev分支
  在dev分支合并bob分支命令就是
  Git checkout dev //先切换dev分支
  Git merge bob
现场保留
  在wang 分支编辑wang.txt
  去zhi分支修复bug,所以需要先git add wang.txt
  然后 git stash保留现场
  再切换zhi分支修复,修复完bug之后,在切回wang分支
  Git stash list可以查看我们保留过的现场
  Git stash apply 恢复现场
  Git syash apply stash@{0} 恢复到指定现场
远程分支
  git remote –v //查看远程库信息
  git ls-remote origin//查看远程分支
  推送本地分支wang到远程分支 wang并建立关联关系
  a.  远程已有wang分支并且已经关联本地分支wang且本地已经切换到wang
  git push
  b.  远程已有wang分支但未关联本地分支wang且本地已经切换到wang
  git push -u origin /wang
  c.  远程没有有wang分支并,本地已经切换到wang
  git push origin wang: wang
  删除本地分支
  git branch –d|-D wang
  删除远程分支
  git push origin  :wang
  git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
标签管理
  标签类是于快照功能,给一个版本库打一个标签,记录某个时刻的状态,也可以随时恢复该状态
  1.  git checkout master 先切换master上
  2.  git tag v1.0 给master打上一个标签v1.0
  3.  git tag 查看所有的标签
  4.  git log –-pretty=oneline –-abbrev-commit//查看历史commit
  5.  git tag v0.9 d03da//针对历史commit打标签
  6.  git tag –a –m “tag just v1.1” d03da//可以对标签进行描述
  7.  git tag –d v0.8删除标签
  8.  git push origin v1.0//推送到指定标签远程
  9.  git push --tag origin//推送所有标签
  10. git tag –d//删除本地标签
  11. git push origin : refs/tags/v1.0删除远程标签
搭建git服务器
  1.  Yum install git
  2.  添加git用户,并设置shell为/usr/bin/git-shell,目的是为了不让git用户远程登录
  Useradd –s /usr/bin/git-shell
  3.  Cd /home/git
  4.  创建authorized_keys文件,更改属主,属组合权限,用于存客户端机器上的公钥
  5.  Mkdir.ssh
  6.  ssh-keygen //使用该命令生成密钥对
  7.  touch authorized_keys
  8.  cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.
  9.  Chown –R git.ssh或者Chown 600 .ssh/authorized_keys
  10. 定义存储git仓库的目录 /data/gitroot
  Mkdir /data/gitroot
  Cd /data/gitroot
  11. Git init –bare sample.git //创建一个裸仓库,裸仓库没有工作区,因为服务器上的git仓库纯粹为了贡献,所以不让用户登录到服务器上改工作区,并且服务器上的git仓库通过以.git结尾
  12. Chown –R git.git sample.git
  以上操作是在git服务器上做的,平时git服务器不西药开发人员登录去修改代码,他仅仅是充当一个服务器的角色,就像github一样,平时都是在我们自己的pc上做的
  在客户端上克隆远程仓库
  Git clone git@ip:/data/gitroot/sample.git
  此时可以进入sample目录下,这个就是我们克隆远程仓库。进入到这里面进行开发,然后push到远程


运维网声明 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-588096-1-1.html 上篇帖子: git修改remote 下篇帖子: git工作原理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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