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

[经验分享] Git基础入门(四)Git基本操作2

[复制链接]

尚未签到

发表于 2018-9-16 12:41:39 | 显示全部楼层 |阅读模式
  忽略文件:
  在实际开发过程中总有些文件无需纳入Git的管理,比如日志文件、临时文件等
  在这种情况下,我们可以在工作目录中创建一个名为.gitignore的文件,列出要忽略的文件名或者表达式
  例:cat .gitignore
  *.[oa]
  *~
  *.log
  第一行告诉Git忽略所有以.o或.a结尾的文件
  第二行告诉Git忽略所有以 ~ 结尾的文件
  第三行告诉Git忽略所有以.log结尾的文件
  要养成一开始就设置好.gitignore文件的习惯,以免将来误提交这类无用的文件
  .gitignore的格式规范:
  所有空行或者以#开头的行都会被Git忽略
  可以使用标准的glob模式匹配
  匹配模式可以以(/)开头防止递归
  匹配模式可以以(/)结尾指定目录
  要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反
  glob模式指shell命令行所使用的统配符
  *:匹配零个或多个任意字符
  ?:匹配任意一个字符
  **:表示匹配任意中间目录,比如'a/**/z',可以匹配 a/z,a/b/z 或'a/b/c/z'等
  [abc]:匹配任何一个列在方括号中的字符;
  [0-9]:匹配0到9的数字
  [a-z]:匹配a到z的字母
  [A-Z]:匹配A到Z的字母
  .gitignore例子:
  # no .a files
  *.a
  # but do track lib.a, even though you're ignoring .a files above
  !lib.a
  # only ignore the TODO file in the current directory, not subdir/TODO
  /TODO
  # ignore all files in the build/ directory
  build/
  # ignore doc/notes.txt, but not doc/server/arch.txt
  doc/*.txt
  # ignore all .pdf files in the doc/ directory
  doc/**/*.pdf
  GitHub上有一个十分详细的针对数十种项目及语言的.gitignore文件列表
  地址:https://github.com/github/gitignore
  git diff查看具体修改的内容
  echo "/usr/bin/python" > test.py                        #修改文件
  git diff                                                #比较当前文件和快照中文件的差异
  diff --git a/test.py b/test.py                      #产生差异的文件
  index df2203b..d5aba22 100644
  --- a/test.py
  +++ b/test.py
  @@ -1 +1 @@
  -coding:utf-8                                       #"-"表示删除的行
  +/usr/bin/python                                    #"+"表示新增的行
  git diff --cached(或--staged)查看已暂存的下次提交里的内容:
  git add test.py                                     #将文件添加到暂存区
  git diff                                            #这时使用git diff将什么也不会输出,应为文件已经放入暂存区
  git diff --cached                                   #查看暂存区的文件差异
  diff --git a/test.py b/test.py
  index df2203b..d5aba22 100644
  --- a/test.py
  +++ b/test.py
  @@ -1 +1 @@
  -coding:utf-8
  +/usr/bin/python
  git difftool                #打开一个文本编辑器显示文件差异(适合文件少时使用,较为直观)
  提交更新
  在提交之前,请一定要确认还有什么修改过的或新建的文件还没有git add过,否则提交的时候不会记录这些还没暂存起来的变化
  每次准备提交前,先用git status看下,是不是都已暂存起来了,然后再运行git commit提交
  git commit会启动一个默认文本编辑器以便输入本次提交的说明(使用git config --global core.editor='vim'设定默认的编辑器)
  编辑器会显示类似下面的信息:
  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch master
  # Changes to be committed:
  #       modified:   test.py
  #开头的为注释信息不会提交到git仓库中
  如果想要更详细信息,可以用-v选项,这会将你所做的改变的diff输出放到编辑器
  退出编辑器时,Git会丢掉注释行,用你输入提交附带信息生成一次提交
  git commit -m "version-6"               #直接在命令行输入说明信息
  [master 3687f51] version-6                              #提交后输出的信息(master分支名称,3687f51校验和,version-6 注释信息)
  1 file changed, 1 insertion(+), 1 deletion(-)
  提交时记录的是放在暂存区域的快照,任何还未暂存的仍然保持已修改状态
  每一次运行提交操作,都是对项目作一次快照,以后可以回到这个状态,或者进行比较
  跳过使用暂存区域
  使用git commit -a时Git会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add步骤,但不会把未跟踪的文件暂存
  移除文件
  git rm              #从已跟踪的文件清单中删除,并连带从工作目录中删除指定的文件
  git rm命令后面可以列出文件或者目录的名字,也可以使用glob模式
  如果使用shell命令rm删除文件,需要再运行git rm记录此次移除文件的操作
  如果删除之前修改过并且已添加到暂存区域,则必须-f强制删除,这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被Git恢复
  如果想把文件从Git仓库中删除,但仍然希望保留在当前工作目录中。(想让文件保留在磁盘,但是并不想让 Git 继续跟踪)
  git rm --cached                 #从git仓库中删除文件或目录
  例:
  git rm --cached test.py
  rm 'test.py'
  git status
  On branch master
  Changes to be committed:
  (use "git reset HEAD ..." to unstage)
  deleted:    test.py
  Untracked files:
  (use "git add ..." to include in what will be committed)
  test.py                     #从git
  ls
  test.py
  移动文件或改名
  git mv   
  git mv相当于下面三条命令的结合:
  mv README.md README
  git rm README.md
  git add README


运维网声明 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-584552-1-1.html 上篇帖子: Git基础入门(三)Git基本操作 下篇帖子: Git基础入门(四)Git历史记录管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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