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

[经验分享] Git使用基础教程《一》

[复制链接]

尚未签到

发表于 2018-9-18 12:14:07 | 显示全部楼层 |阅读模式
  1 初始化git repository
  mkdir blog
  cd blog
  git init
  touch readme
  cat >> readme
  git add readme
  git commit -m "initial project version"
  2 从现有repository克隆
  假设你在github上的账号为woaigithub,有一个repository叫做forum。
  git clone git://github.com/woaigithub/forum.git
  在本地就会新建一个文件夹forum,如果想自定义这个文件夹名称,使用下面的命令。myform就是新文件夹的名称。
  git clone git://github.com/woaigithub/forum.git myforum
  3 检查当前文件状态
  git status
  显示当前处于哪个分支,有哪些文件处于跟踪状态,那些文件处于非跟踪状态。处于跟踪状态就是说该文件已经执行过git add file1.txt命令,已经纳入管理,但是还没有提交,也就是没有执行过git commit -m "file1 commit"命令。
  4 跟踪新文件
  touch file1
  git add file1
  git add后面不指定文件,就是跟踪当前目录的文件,也可以指定需要跟踪的文件或目录,如果是目录,就说明要递归跟踪目录下的所有文件。
  5 暂存已经修改的文件
  文件修改之后,没有放到暂存区,要暂存这次更新,需要运行git add命令,这个命令是个多功能命令,会根据状态不同来执行不同的任务:可以用它开始跟踪新文件,或者把已经跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态。
  如果在执行git add之后又对文件进行了修改,需要再次执行git add命令,否则如果这时候提交的话,后面的修改不会被提交。
  6 忽略某些文件
  在目录下新建.gitignore文件,列出忽略的文件,这些文件不会被纳入管理,以免将来提交一些无用的文件。
  文件 .gitignore 的格式规范如下:
  所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  可以使用标准的 glob 模式匹配。
  匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
  所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
  我们再看一个 .gitignore 文件的例子:
  # 此为注释 – 将被 Git 忽略
  *.a       # 忽略所有 .a 结尾的文件
  !lib.a    # 但 lib.a 除外
  /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
  build/    # 忽略 build/ 目录下的所有文件
  doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
  7 查看已暂存和未暂存的更新
  git status只列出修改的文件,如果想要查看具体修改的内容,可以使用git diff命令。
  8 提交更新
  在提交更新之前,一定要确认有什么新建或者修改过的文件还没有执行git add命令,可以使用git status看看那些文件还没有被暂存起来,然后再执行git commit提交。
  也可以使用-m参数对本次提交进行一些描述。
  git commit -m "fix bug 001"
  提交之后会显示你提交到那个分支,有多少文件修订过,有多少行修改和删除。
  每次提交都是对项目的一次快照,以后可以回到这个状态。
  9 跳过使用暂存区域
  给git commit 加上-a选项,git会自动把已经跟踪的文件暂存起来一并提交,从而跳过git add步骤。
  10 移除文件
  要从git移除某个文件,就必须要从已跟踪的文件清单中移除,然后提交。
  使用git rm命令完成这项工作,-f是强制选项,-r是递归选项。
  有一种情况是,我们想把文件从git仓库中删除,但是希望保留在当前工作目录中。例如一些不小心纳入管理的,要移除跟踪但是不删除文件,可以使用--cached选项。
  git rm --cached readme.txt
  11 移动文件
  git mv file_from file_to
  其实相当于下面的三条命令
  mv file_from file_to
  git rm file_from
  git add file_to
  12 显示提交历史
  git log
  最近的排在最上面,每次都有作者,邮件,提交时间,提交说明。
  13 撤销操作
  13.1修改最后一次提交
  git commit --amend
  git commit -m "initial commit"
  git add forgotten_file
  git commit --amend
  上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
  13.2取消已经暂存的文件
  在git status命令的输出中,已经告诉我们应该怎么做。
  git reset HEAD file1
  执行之后,文件file1又回到了之前已修改未暂存的状态。
  13.3取消对文件的修改
  在git status命令的输出中,已经告诉我们应该怎么做,在git1.6.1以及更高版本会提示我们,建议升级,以获取最佳的用户体验。
  git checkout -- file1
  14 远程仓库的使用
  14.1查看当前的远程库
  要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库:
  git remote -v
  可以显示仓库对应的地址。
  14.2添加远程仓库
  git remote add [shortname] [url]
  git remote add fixbug001 git://github.com/woaigithub/forum.git
  14.3从远程仓库抓取数据
  git fetch [remote-name]


运维网声明 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-589820-1-1.html 上篇帖子: git clone-breezelife 下篇帖子: git clone https 代码异常处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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