git的基本命令

1.基本信息设置:

git config --global(基本不用,给整个计算机一次性设置)

git config --system(给当前用户一次性设置)

git config --local(给当前项目一次性设置)

设置用户名: git config --global user.name ‘用户名’

设置用户名邮箱:git config --global user.name ‘邮箱’

git checkout -- 文件名”撤销操作(checkout还可以用于切换分支的命令)

 2.初始化仓库:

将某个目录纳入git管理,必须进行git init  (清屏:clear/ctrl+L)

3.查看修改的日志记录:

git log(git log –次数“查看最近的次数)

4.重命名操作:

git mv 文件名 新文件名

重命名操作,实际是从一个文件移动到另一个文件,并把原文件删除,若执行撤销删除操作,则会出现两个文件。

5.重写提交说明:

git commit –amend –m ‘修正说明’ (只是修改最近一次的提交说明)

6.忽略文件:

创建.gitignore文件,把要忽略提交的文件名写入到.gitignore文件里,就会自动忽略提交里面的文件。忽略文件下下所有的文件:dir/:dir/*/*.txt能够忽略dir/abc/a.txt  dir/xyz/x.txt 不能忽略dir/xyz/123/a.txt dir/**/*.txt可以忽略任意级目录)。空目录默认就是忽略的。

7. 通配符:*(任意通配符)

8. !(非)通常与通配符配合使用

9.分支操作:分支是一条工作链

查看分支:git branch

创建分支:git branch 分支名

切换分支:git checkout 分支名

分支重命名:git branch -m 分支名 新分支名

删除分支:git branch –d 分支名(自己不能删自己,即不能删除当前分支)

(其他不能删除的情况:包含“未合并”(增、删、改)的内容,使用“git merge 分支名”命令进行合并)

强行删除分支:git branch –D 分支名

(细节:1.如果在分支A中进行了写操作,但此操作局限在工作区中进行(没有add commit),在master中能够看到该操作,如果分支A进行了commit,则在master中无法观察到此文件。2.如果在分支A中进行了写操作,此操作局限在工作区中进行,删除分支A是可以直接进行的,如果分支A进行了commit,则删除该分支之前主分支必须与其合并,或强行删除。简单来说,如果commit了,可以直接删,如果没commit,不能直接删

创建并切换:git checkout –b 分支名

10.合并:

①合并不冲突:

如果一个分支A靠前,一个分支B靠后,则如果不冲突,B可以通过merge直接追赶上A。称为fast forward(本质就是分支指针的移动)。gitmerge时,默认使用fast forward,最终两个分支归于一点commit,并且没有分支信息(丢失分支信息)。也可以禁止使用:git merge --no-ff ,两个分支不会归于一点commit主动发起合并的分支会前进一步通过git log查看每一步的sha1)),分支信息完整(不会丢失分支信息)

②合并冲突:如果有冲突(两个分支同时同一个文件同一位置做了修改)

 需要解决冲突:先通过vi修改冲突文件内容,再次提交

git add 文件名(告知git冲突已解决,不是将工作区提交到暂存区)

git commit -m ”**”

 

 解决冲突后两分支的文件内容如下:(注意,此时两分支的的hello.txt文件内容并不是一样的)

 如果此时再对new_branch分支进行合并,不会发生冲突,因为此时的new_branch落后于master一步,落后方可以直接通过merge合并到前进方(master主动发起合并,比new_branch分支前进一步)。

 可以通过sha1值来查看分支链(sha1是一种加密函数,在这里主要是为了产生随机码)

 

 11.版本穿梭在多个commit之间进行穿梭、回退、前进

回退到上一次commitgit reset --hard HEAD^ (n^就回退到上n)

回退到上ncommitgit reset --hard HEAD~n

跳转到任意一次commit:通过sha1值直接回退 git reset --hard 803c999sha1值的前几位),git reflog 记录所有的操作,通过查看记录,记住想要跳转到某一步的sha1值,再结合git reset直接跳转即可。

12.stash保存现场:

注意规范(建议):在功能没有开发完毕之前,不要commit

规定(必须):在没有commit之前,不能checkout切换分支

 如果还没有将某一个功能开发完毕就要切换分支,建议:

  保存现场(临时保存:stash

  保存现场:git stash

  还原现场:git stash pop

                    git stash apply

  查看现场:git stash list

13.checout命令的几个功能:

①放弃修改。放弃的是工作区中的修改,相对于暂存区或仓库

reset是将之前增加到暂存区中的内容回退到工作区

②版本穿梭(游离状态):git checkout sha1

       修改后必须提交 此状态是创建分支的好时机:git branch 分支名 sha1

切换分支 

 

posted @ 2019-09-21 17:24  浮华夕颜  Views(174)  Comments(0Edit  收藏  举报