Git学习目录
1. 指令的使用
1.1 基本指令记录
指令名称 | 指令作用 |
---|---|
git status | 查看当前的仓库显示状态 |
git add | 添加到暂存区 |
git init | 创建本地仓库 |
git clone | 拷贝远程仓库 |
git rm | 从版本库中移除(本地也删除了) |
git rm --cached | 从仓库中移除,但是还留在本地文件里 |
git log | 查看提交的日志(-p 表示稍微详细一点显示日志;-1 显示一次提交信息;) |
git commit | 提交add后的文件 |
git mv 旧文件名 新文件名 | 修改文件的名字 |
git checkout 文件或分支名 | 将某个文件返回到上次提交的时候,前提是这次还没有提交,或跳转执行当前分支 |
git branch 分支名 | 创建分支,如果不加分支名就只是单纯的显示分支,如果是删除只要在分支名前添加-d |
git merge 分支名 | 将指定的分支加入到主分支,在主分支执行 |
git branch -d 分支名 | 删除已经合并的的分支,如果是-D 就是强制删除,即便没有合并也可以删除 |
git stash | 将不同分支中修改了的文件进行暂存(如果没必要提交的话,提交了就不需要暂存),方便下次回来时使用 |
git stash apply | 将暂存区的文件再次重新应用 |
git stash list | 显示暂存的编号 |
git stash drop 暂存的编号 | 通过暂存的编号进行删除 |
git stash pop | 恢复暂存区的同时删除暂存,是上面两个指令apply和drop的综合 |
git tag | 打标签,比如版本号 |
添加的知识:
git log --name-only(显示日志,带有文件的名字)
git log --name-stastus 显示文件发生的变化;
git checkout -b 分支名 创建分支,并且指定到创建的分支
git commit --amend 修改最新一次提交的名字
git archive 分支名 --prefix='解压后路径名/' --forma=zip > 自定义压缩包名.zip
处理文字部分可以修改,其他所有符号都是必须的;
#添加别名
git config --global alias.a add
结果如下图:
也可以直接在全局文件中进行alias的设置,这里面的别名就和Mabatis里面的差不多,在这里放在全局设置里面;
1.2 有时有许多文件需要传入时如何快速传入
使用的一样是指令git add .
如果在所有的文件中,需要某一部分文件不上传,那么可以这样做;
- 先创建一个文件
.gitignore
通过指令vim .gitignore
;然后在其中写入需要忽略的文件即可,也可以写*.txt
等后缀,这样就会将此后缀的文件全部忽略; - 在这个文件里面还可以标明想要忽视的文件夹,或者文件夹里面的文件;一般在
.gitignore
里面这么写也可以/文件夹/(文件)或者(后缀);
3. Git中的分支
在Git中分支的概念可以这样理解,比如一个应用需要许多的功能,但是不同功能由不同的项目组开发,这时每一个项目组的任务其实就属于一个分支,各个分支也可以最终组合到一起,这是因为他们的开发时限不一定一致,我觉得这就是分支出现的理由之一;
不同分支的工作也是分开的,也就是说里面的文件可以都是不同的;
4. Git中的分支冲突
一般冲突发生的场景可以是这样的,当两个分支同时修改了一个文件,然后两个分支最后合成到一起的时候就会发生冲突;
出现这个问题就代表发生了冲突:
Automatic merge failed; fix conflicts and then commit the result.
如果需要结果就需要自己去文件中进行修改;也就是自行选择需要的文件;
当然修改完之后也不要忘了提交;
5. 如何进行分支管理(判断分支是否合并)
有的时候创建了分支,那么怎么管理分支,也就是如何知道哪些分支以及组合了,哪些分支没有用上;
一般通过git branch --no-merged
来查看没有进行组合的分支,一般是在master里面使用,因为所有的分支最终都要组合在master中;
6. 对于不同分支中文件在git中的移动问题
使用git测试的时候我发现,有一些文件在分支里面,比如分支A创建一个a.txt文件,但是它没有在分支中提交,就跳转到了分支B中的话,分支B中也会有这个a.txt的文件,如果在分支B中commit之后,再回到分支A中查看,发现分支A中已经没有了a.txt文件,(由此证明只有在哪里提交,文件就属于哪里);
还有就是如果在分支A中如果提交过
a.txt文件,那么如果在分支A中对a.txt文件进行了修改,但是没有提交,这时若是跳转到其他的分支就会出现错误提示(必须先将修改后的文件提交,或者使用指令git stash
进行暂存);
ctrl+l清屏;