1.使用git rm删除文件
查看文件夹的内容 ls -lr
删除文件rm 文件名
但是此时只删了工作区的文件,仓库还没有删
可以再使用git add更新提交给仓库
也可以直接通过git rm 删除仓库里面的文件 工作区也删除了 暂存区也删除了
最后记得提交 否则删除的文件在版本库还是存在的。
2.gitignore忽略文件
把某个文件(access.log)忽略:echo access.log >.gitignore
查看ignore中的文件:cat .gitignore
如果想默认忽略,就打开vi .gitignore编辑
忽略所有.log文件
这里会发现other.log文件没有被放进.ignore之中,即使修改也没有。这是因为,要被忽略的文件不能是已经被添加到版本库里面的文件。这里是先把other.log文件添加进了版本库中,才修改的.gitignore文件,所以gitignore文件对other.log文件是没有用的。
我们需要把other.log这个文件先从版本库里面删除
git rm other.log会把文件从工作区和暂存区同时删除,但我们只想从版本库删除,而不想删除本地文件,使用--cahced这个参数就可以了。
这样我们再追加什么内容在仓库中都是没有变化,没有提示的。
如果添加了一个空文件夹,git是不会纳入版本控制中的。
git status -s:s是short的缩写,表示查看状态的简略模式。
文件夹以/结尾
M .gitignore中的M表示被修改过
.gitignore文件的匹配规则
3.ssh配置和克隆仓库
github中新建了一个仓库之后会有一个这样的链接,通过HTTPS或者SSH就可以和远程仓库建立联系。
id-rsa.pub就是公钥文件 需要通过vim打开复制 到github中配置
这样本地仓库就可以获取远程仓库中的内容了
通过git push把本地仓库的修改内容推送给远程仓库。
4.关联本地仓库和远程仓库
添加一个远程仓库 git remote add<shortname><url>
git remote -v可以看一下当前仓库对应的远程仓库的别名和地址
这样就把本地仓库的内容上传到了远程仓储 同样的要是想和远程仓库一样 就用pull命令获取
5.Gitee的使用和GitLab本地化部署
13.Gitee的使用和GitLab本地化部署_哔哩哔哩_bilibili
6.GUI工具
推荐sourcetree
7.在VSCode中使用Git
请确保已在 Git 中配置你的 "user.name" 和 "user.email"问题
可全局配置:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱地址"
也可仓库配置:(仅对当前仓库有效)
git config user.name "你的名字"
git config user.email "你的邮箱地址"
8.分支简介和基本操作
创建新分支:git branch 分支名
切换到新分支上:git checkout 分支名
查看现在所在分支:git branch
需要注意的是 git checkout有歧义 可以切换分支和恢复文件,比如意外的修改了某一个文件,就可以使用git checkout命令恢复到修改之前的状态,如果分支名称和文件名称相同的话就会出现歧义。git checkout会默认切换分支而不是恢复文件,为了避免这个歧义,git2.3版本给出了git switch命令来切换分支,语义更加明确。
合并分支中的内容:git merge 分支名 (把分支名中的分支合并到当前分支中)
使用这个命令查看分支图:git log --graph --oneline --decorate --all
合并之后 如果不手动删除分支还是存在的
如果想删除,使用git branch -d 分支名 命令删除已经完成合并的分支,注意,如果没有被合并的话,是不能使用这个-d来删除的。需要使用git branch -D branch-name来强制删除这个分支。
执行之后 dev分支就被删除了
9.解决合并冲突
10.回退和rebase
rebase是变基操作,和merge不同的是,merge要在对应分支上进行合并。rebase可以在任意分支上执行rebase操作。可以在dev也可以在main分支
使用rebase命令可以把两个分支合并成一个分支,最后的结果都是一条直线,但执行的顺序不同。先找到共同祖先,然后移交到目标分支的最后提交上。
merge和rebase的优缺点:
merge:
优点:不会破坏原分支的提交历史,方便回溯和查看。
缺点:会产生额外的提交节点,分支图比较复杂。
rebase:
优点:不会新增额外的提交记录,形成线性历史,比较直观和干净。
缺点:会改变提交历史,改变了当前分支branch out的节点。避免在共享分支使用。