• git 笔记


    学习视频传送门

    基本概念图解传送门

    使用git进行版本管理图解传送门

    准备

      1.git命令行工具或者图形化工具

      2.github账号

    配置命令

      1.git config --global user.name  查看用户名

      2.git config --global user.email  查看用户email

      3.git config --global color.ui true  默认的命令行颜色颜色配置

    提交

      4.1.进入已经完成的项目文件夹。

      4.2.git init [项目仓库名]  建立本地git仓库。

      4.3.git status 显示一些可以提交的文件名,以及它们的状态。

      4.4.git add [文件名],[文件名]...  将文件放到暂存区。用户随意处理暂存区,最后统一上传。

      4.5.git commit -m "上传的信息"  上传,并说明上传内容。

    代码修改

      5.1.git diff  查看已经修改完的代码与暂存区里的文件相比,哪行有变动。红色-表示改变前,绿色+表示改变后。

      5.2.git diff --staged  查看已经修改完并add的代码和已经commit的代码比,有哪些改动。

      5.3.git diff HEAD  若暂存区文件已修改未提交,源文件也修改了,使用这个命令查看最后一次修改和最后一次提交的改动部分,中间的改动忽略。

      5.5.git diff --color-words/--word-diff  上面的改动都是以行为单位,这次以单词为单位,color-words表示用颜色表示改动,word-diff表示用单词表示改动。

      5.6 git diff --stat  查看哪些文件有修改,不会查看修改的具体细节。

    日志

      6.1.git log   提交commit的历史,上面的是最新提交,下面的是最早提交。

            第一行是提交者的用户名和email地址。

            第二行是提交日期

            第三方是提交的具体内容。

      6.2.git log --oneline  提交的简要说明,由用户自己写的。

      6.3.git log --stat  文件级别的变动日志。

      6.4.git log --patch  代码级别的变动日志。

      6.5.git log --patch --oneline  组合命令查看日志。

      6.6.git log --graph/--ascii  查看提交的结构或二进制

      6.7.git log --all -- graph --decorate --oneline  建议的查看方式

      6.8.git reflog  记录commit前进后退30天的记录,以后可以进行回退,使用每行的哈希码回退

    删除文件

      理解删除文件操作之间,因理解操作的逻辑。

        7.1.若删除工作区文件,且版本库repository不存在该文件,直接rm就行。

          7.1.1.rm 文件名  删除工作区

        7.2.若删除工作区文件,且版本库中存在该文件,这要分情况。

      ·    方法一:rm + git rm

            7.2.1.rm 文件名  删除工作区文件

            7.2.2.git rm 文件名  定义一个删除操作,准备提交给版本库

            7.2.3.git commit -m "delete file"  将所有操作提交给版本库,这是版本库中的该文件已经被删除

          方法二:git rm

            7.2.4.git rm 文件名  删除工作区的文件,并定义删除操作

            7.2.5.git commit -m "delete file"  将所有操作提交给版本库,这是版本库中的该文件已经被删除 

        7.3.git rm --cached 文件名  定义删除版本库中的文件的操作,但是保存工作区中的文件

    移动

      8.1.git move old_path new_path    移动/重命名

      8.2.git add -A .  将该目录下的所有的修改,移动,创建操作提交到暂存区

      8.3.git add .  接近于git add -A .  但是不提交已经删除的文件

      8.4.git add -u .  将该目录下的所有已修改的文件放到暂存区,仅监控已经存在于暂存区的文件

      8.5.若修改文件后移动,git把它看成文件移动

      8.6.git log --stat -M --follow -- 文件名  文件移动日志

      8.7.git commit后的百分数是指提交前后版本库中文件的相似度。删除前后文件的默认阈值是50%,低于50%?则不同文件有可能被定义为同种文件

        如何判断修改前后的文件是不是同一个文件?

          1.CVS认为文件一旦移动,原文件就被破坏,无法追踪它了

          2.不管怎么修改移动,都是同一个文件

          3.Git可以改变相似度观点,在 git log -M中修改,具体再作了解

    忽略

      9.1.建立.gitignore文件  文件里面存储忽略的文件名,表示该文件不参与暂存区和版本库中

      9.2.在.gitignore文件中,写文件名,进行忽略。

          技巧:

            1.若忽略.java结尾的所有文件,文件名写成*.java

            2.若某个文件不能忽略,文件名写成  !文件名

            3.若要描述或者评论某忽略的文件,需要在评论前叫上#

      9.3.git ls-files --other --ignored --exclude-standard  查看已经忽略的所有文件

      9.4.注意,忽略的文件必须不包含在暂存区或者版本库中

    分支

      分支的基本概念传送门

      10.1.git branch 新分支名  创建一个新分支,以后可以进行切换

      10.2.git branch -d 分支名  删除一个分支,必须切换到其它分支上,才能删除该分支

      10.3.git checkout 分支名  切换一个分支,若覆盖文件,必须提交才能切换。  

      10.4.git branch  查看当前处于的分支位置,默认为绿色

      10.5.git status  也可以查看正在运行的分支

      10.6.git checkout -- 文件名  恢复文件原来的状态,工作区文件也生效

      10.7.git checkout -b 分支名  创建分支并切换到该分支

    合并

      把多个分支合并起来

      11.1.git checkout master 进入master分支

      11.2.git branch  查看所有分支

      11.3.git merge 分支名  将一个分支合并到master分支中,master分支中包含了该分支的文件,修改和历史,若两个分支很多文件类似,那就自己打开文件进行修改即可。

      11.4.git merge --abort  返回合并前的状态

      11.5.git merge --squash  减少合并时的commit记录数

         11.6.git rebase 分支名   把归并的分支的commit落到分支的最新位置,工作流是一条直线,方便查看

    远程网络

      必须在一个已经建立的本地库上操作

      12.1.git remote add origin url地址  添加远程仓库名和地址

      12.2.git remote set-url  origin url地址  修改远程仓库名对应的地址

      12.3.git remote rm url  删除远程仓库名

      12.4.git remote -v  查看远程地址和名字

      12.5.git fetch origin  下载信息,并追踪  

      12.6.git branch -r  查看远程url的分支

      12.7.git pull origin  下载信息到本地并合并

      12.8.git push origin  上传信息到远程并合并

    回退

      13.1.git reset --soft HEAD~n  回退n次提交

      13.2.git reset --mixed HEAD~n  回退n次提交

      13.3.git reset --hard HEAD~n  回退n次提交

      简单总结一下,其实就是--soft 、--mixed以及--hard是三个恢复等级。使用--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西都不变。如果使用--mixed,就将头恢复掉,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的。如果使用--hard,那么一切就全都恢复了,头变,aad的缓存消失,代码什么的也恢复到以前状态。

    注:视频中4集github部分未做笔记。

  • 相关阅读:
    Spring 学习笔记
    Hello Spring(3)ConnectionUtility
    android ndk开发
    java udp 广播及socket通讯
    android 横向滚动屏幕实现(2)
    android 基于ftp远程文件管理
    android 软键盘的弹出问题总结
    android 滚动字幕
    android 基于apache ftp server
    android 设置壁纸几种方法
  • 原文地址:https://www.cnblogs.com/yulianggo/p/10420266.html
Copyright © 2020-2023  润新知