Loading

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部分未做笔记。

 

posted @ 2019-02-22 19:45  FishLight  阅读(390)  评论(0编辑  收藏  举报