git第二天

1. 获取Git仓库

    1.1 在现有目录中初始化仓库

        a. 在该项目目录下输入  $git init 表明使用Git来对现有的项目进行管理,此时项目里的文件还没有被跟踪

        b. 通过 $git add命令来实现对指定文件的跟踪  e.g: $git add *.c 

        c. 执行commit提交  e.g: $git commit -m 'initial project version',现在已经得到了一个实际维护着若干个文件的Git仓库

    2.2 克隆现有的仓库

        a. git clone [url]

        在当前目录下创建一个joe文件夹,将远程的所有版本放置在.git文件夹中,然后从中读取最新版本的文件拷贝刚知道该目录下  

        e.g: $git clone https://github.com/joe/joe

        在本地创建的仓库名字变为myJoe

        e.g: $git clone https://github.com/joe/joe myJoe

2 git文件的状态周期变化

        

            2.1 查看哪些文件处于什么状态$ git status

                 a. 提示是否有未跟踪文件,出现在Untracked file下面

                 b. 提示是否是暂存状态,出现在Changes to be committed下面

                 c. 提示已跟踪的文件内容是否发生了变化,但是还没有放到暂存区,出现在Changes not staged for commit下面

                缩减命令 git status -s

                 ??:新添加的未跟踪文件

                 A:新添加到暂存区中的文件

                 M:出现在右边表示该文件被修改了但是还没有放入暂存区,出现在左边表示该文件被修改了并放入了暂存区

                 MM:表示在工作区被修改并提交到暂存区之后又在工作区被修改了

            2.2 $git add

                  1) 开始跟踪新文件(添加到暂存区)

                  2)把已跟踪的文件放到暂存区

                  3)合并时,把有冲突的文件标记为已解决状态等

    3. 设置.git忽略文件

        .gitignore格式规范:

         1) 所有空行或者以#开头的行都会被Git忽略

          2)可以使用标准的glob模式匹配(shell所使用的简化了的正则表达式)

          3)匹配模式可以以(/)开头,防止递归

          4)匹配模式可以以(/)结尾指定目录

           5) 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

4. 查看已暂存和未暂存的修改

    4.1 使用$git diff

          1)当前做的哪些更新还没有暂存(不加参数直接输入git diff)

               此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容

          2)有哪些更新已经暂存起来准备好了下次提交(git diff --staged/git diff --cached)

               查看已暂存的将要添加到下次提交里的内容

5. 提交更新

    5.1 正常提交

        $git add

        $git commit -v/-m

    5.2 跳过缓存区提交

        $git commit -a

6. 移除文件

    6.1将文件从暂存区域移除,并连带从工作目录中删除指定的文件($git rm/$git rm -f ;$git commit)

    6.2 将文件从暂存区域移除,但是仍然保留在磁盘($git rm --cached README)

    6.3 批量删除文件($git rm [表达式])

7. 移动文件

    git mv [oldFileName] [newFileName]

    等价于如下3条指令:

    mv oldFileName newFileName

    git rm oldFileName

    git add newFileName

8. 查看提交历史(以下图和文字列出的并不完全)

    1) git log

    2) git log -p / git log -p -数字

    3) git log --start 

    4) git log --pretty=oneline/short/full/fuller

    5) git log --pretty = format:"$string" [option]

     

     

     

9. 撤销操作

    9.1 将暂存区中的文件提交,如果暂存区的数据并没有被修改,那么快照会保持不变,这样所修改的只是提交信息,文本编辑器启动之后,可以看到之前的提交信息,编辑后保存会覆盖原来的提交信息。

    $git commit --amend

    9.2 提交后发现忘记了暂存的某些修改,如下操作只会有一个提交,第二次提交将会代替第一次提交的结果

     $git commi -m 'initial commit'

     $git add forgotten_file

     $git commit --amend

    9.3 取消对修改的暂存

     $git reset HEAD [fileName]

    9.4 取消对文件内容的修改

      $git checkout --[fileName]

10. 查看远程仓库

        10.1 $git remote/$git remote -v:显示需要读写远程仓库使用的Git保存的简写与其对应的URL

        10.2 $git remote show origin

11. 添加远程仓库

        11.1 $git remote add <shortname> <url>:添加一个新的远程Git仓库,同时指定一个你可以轻松引用的简写

12. 从远程仓库中获得数据,拉取远程仓库中有但你没有的信息

        12.1 $git fetch <远程仓库名>:访问远程仓库,从中拉取你还没有的数据,执行完成后你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看,git fetch命令会将数据拉取到逆的本地仓库,并不会自动合并或修改你当前的工作,当准备好时你必须手动将其合并入你的工作.

        12.2 $git pull该命令会尝试自动合并

13. 推送到远程仓库

        13.1 $git push origin master

          只有当你有所克隆的服务器的写入权限,并且之前没有人推送过时,这条命令才能生效,当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问的被拒绝。你必须先将他们的工作拉取下来并将其合并进逆的工作后才能推送。

14. 远程仓库的移除与重命名

        14.1 重命名:$git remote rename oldName newName

        14.2 移除远程仓库:$git remote rm 远程仓库名

15. 给历史中的某一个提交打上标签

        15.1 $git tag : 列出已有的标签

        15.2 $git tag  -l '标签部分关键字母':列出匹配的标签

        15.3 $git show <tagName> : 查看标签信息与对应的提交信息

                 a. 轻量标签只会显示出提交信息,不会看到额外的标签信息

                 b. 附注标签可以看到标签信息与对应的提交信息

16. 标签类型

        16.1 轻量标签(lightweight):一个特定提交的引用,本质是将提交校验和存储到一个文件中 $git tag <tagName>

        16.2 附注标签(annotated):一个完整的对象 $git tag -a <tagName> -m <tagInformation>

17. 对过往的提交打标签

        17.1 git tag -a <tagName>  <SHA>

18. 共享标签(git push不会传送标签到远程仓库服务器上,在创建完标签后你必须显式地推送标签到共享服务器上)

        18.1 推送一个标签 $git push origin [tagname]

        18.2 推送所有不在远程仓库服务器上的标签全部传送过去 $git push origin --tags

19. 删除标签

        19.1 删除本地仓库上的标签 git tag -d <tagname>(只是举了个轻量级标签的例子)

        19.2 删除本地标签之后再从远程库中移除这个标签:git push <remoteName> :refs/tags/<tagName>

20. 检出标签

       学完分支之后在回来补充。

21. Git别名

        21.1 设置方法:通过git config文件来轻松地为每一个命令设置一个别名  e.g:git config --global alias.co chekout

22. 总结

     通过上述方法 创建/克隆一个仓库,做更改,暂存并提交这些更改,浏览你的仓库从创建到现在的所有更改的历史。

 

 

          

 

    

 

 

 

        

        

 

  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值