一个空间能放几个网站,自己开网站工作室,网站网站做员工犯法吗,所有网站排名2015年目录 一、创建仓库
1.1 git init
1.2 git clone
二、工作区域与文件状态
三、添加和提交文件
3.1 git status
3.2 git add
git rm --cached
3.3 git commit
git log
四、版本回退
soft
hard
mixed
总结
五、查看差异
工作区与暂存区
工作区与本地仓库
暂存区…目录 一、创建仓库
1.1 git init
1.2 git clone
二、工作区域与文件状态
三、添加和提交文件
3.1 git status
3.2 git add
git rm --cached
3.3 git commit
git log
四、版本回退
soft
hard
mixed
总结
五、查看差异
工作区与暂存区
工作区与本地仓库
暂存区与本地仓库
版本差异
分支差异
六、删除文件
git rm
git rm --cached file
六、.gitignore 忽略文件
七、分支
7.1git branch显示分支
7.2git branch 分支名创建分支
7.3git switch 分支名切换分支
7.4 git merge src des合并src分支至des分支
7.5 rebase 变基
7.6 git branch -d 分支名删除已合并的分支
7.7 git branch -D 分支名删除未合并的分支
八、解决合并冲突
8.1 设计冲突
8.2 冲突现象
8.3 解决冲突
九、版本回退 一、创建仓库
1.1 git init
使用 git init 初始化git仓库然后可以使用ls -a查看隐藏的目录结构观察到.git目录 1.2 git clone
使用git clone 可以从远程仓库拉取仓库到本地
二、工作区域与文件状态
git 分为三个区域分别是工作区(Working Directory)、暂存区(Staging Area/Index)、本地仓库(Local Repository)
工作区实际操作的目录暂存区相当于一个缓冲区临时存放即将提交的修改内容本地仓库Git存储代码和版本信息的主要位置 Git中的文件也存在各自的状态如下未跟踪新创建的还没有被Git管理起来的文件未修改已经被Git管理但是文件的内容没有发生变化已修改已经被修改的文件但是还没有被添加到暂存区已暂存已经被修改过并放入暂存区的文件可以使用git ls-files查看暂存区的文件内容 可以使用git -ltr查看本地仓库的文件内容
三、添加和提交文件
3.1 git status
可以使用git status查看当前工作区的文件状态下面新建一个文件使用status后发现文件飘红这就是未跟踪的文件 3.2 git add
可以使用git add将文件添加到暂存区可以看到刚才飘红的file1.txt已经变成绿色这表示该文件已经被添加到暂存区 git add还支持通配符与文件夹的添加如git add \*.txt 与git add dir1/分别表示添加所有以txt结尾的文件与dir1下的所有文件
git rm --cached
在上图中可以看到绿色的字体上方有一句提示使用该命令可以将文件从暂存区中删除 需要注意的是file 中的 和 是特殊字符在 Zsh 中具有特殊含义例如重定向。如果你希望直接使用文件名 file1.txt不需要加 和 。
3.3 git commit
将暂存区的文件添加到本地仓库它只会与暂存区和本地仓库交互并不影响工作区的文件
除此之外使用git commit提交时要使用-m选项指定文件的提交信息如果不使用-m则默认使用vim来编辑提交信息
git log
git log可以查看所有已经提交的提交信息 可以加上其他选项如--oneline这样就会显示比较简洁的提交信息 四、版本回退
使用git reset时需要在后面加上回退的版本ID或者使用 HEAD^ 表示上一个版本 可以使用git reset进行版本回退同时其支持三种模式
git reset --soft保留工作区与暂存区的所有修改内容git reset --hard丢弃工作区与暂存区的所有修改内容git reset --mixed(default)保留工作区丢弃暂存区的修改内容 再次新建三个文件分两次提交第一次提交前两个文件第二次提交第三个文件 接着使用git log查看提交历史
soft
当你提交后发现提交信息有问题或漏加了一些文件时可以回退到提交之前的状态保留文件变更。 使用soft回退到提交两次文件的版本后使用git log查看可以看到提交历史已经成功回退到提交两次文件的时候 查看工作区与暂存区的文件可以看打它们都没有被删除且因为回退到了3.txt未被提交的版本这里显示其是一个新文件
hard
彻底清理 当你需要放弃所有未提交的更改和暂存内容回到某个提交的状态。切换分支时冲突太多如果切换分支或合并导致大量冲突并且你决定完全放弃当前的更改可以使用 回退前 回退后 查看工作区与暂存区的内容发现3.txt都被删除了
mixed
撤销提交并重新整理文件当你需要取消提交同时希望对文件进行修改或重新选择哪些文件需要暂存时。 回退前 回退后 查看工作区与暂存区可以发现工作区的3.txt未被删除但是暂存区的已经被删除 总结 如果误删除也不需要担心可以使用git reflog查看操作的历史记录然后继续使用git reset进行回溯 五、查看差异
可以使用git diff查看以下内容
工作区、暂存区、本地仓库之间的差异查看不同版本的差异查看不同分支之间的差异 目前有三次提交
工作区与暂存区
现在要修改3.txt的内容然后使用git diff查看 以上内容说明3.txt修改的内容还没有被添加到暂存区现在将其添加到暂存区后查看 可以看到已经没有任何的内容了表示工作区与暂存区的内容是相同的。
工作区与本地仓库
使用git diff HEAD查看工作区与本地仓库的差异 暂存区与本地仓库
使用git diff --cached查看暂存区与本地仓库的差异 版本差异
使用git diff 版本1ID 版本2ID可以比较版本差异
HEAD指向最新一次提交也可以使用其指代最新的一次提交。 HEAD表示上一次提交。HEAD2表示本次提交前的第二个版本。可以在后面加上文件名这样只会比较该文件的版本差异
分支差异
使用git diff 分支1名 分支2名可以查看分支间的差异具体内容需要看分支小节
六、删除文件
首先查看本地仓库的文件内容 正常删除文件的流程
删除本地文件使用git add更新暂存区列表使用git commit更新本地仓库
git rm
git中提供git rm命令可以合并上述的步骤1与步骤2 但是最后还是要执行git commit删除本地仓库的文件 执行git commit前 执行git commit后 git rm --cached file
如果只需要删除暂存区的文件可以使用该命令
六、.gitignore 忽略文件
可以创建一个.gitignore文件在其中添加需要忽略的文件 此时git就会主动忽略与.gitignore中的文件格式相同的文件 需要注意的是git只会忽略.gitignore提交以后生成的文件如果在.gitignore提交前生成的文件git还是会进行跟踪。
七、分支
7.1git branch显示分支 可以看到 main 前有一个*这其实就是HEAD指针它指向的是当前分支 7.2git branch 分支名创建分支 在创建分支时该分支会继承本分支上的提交记录 7.3git switch 分支名切换分支 在当前分支下创建两个文件并提交到本地仓库然后切换分支来观察main分支是否存在新建的文件 当我们在不同分支间切换时其实就是HEAD指针指向的改变这也就解释了为什么在testing分支提交的文件在main分支不可见 此时在main分支提交两个文件后则底层实现会变为 注为了方便观察这里使用提交信息代替了版本ID
7.4 git merge src des合并src分支至des分支
在合并之前需要先进入des分支 7.5 rebase 变基
rebase 分支名将当前分支变基到指定的分支。变基Rebase 是 Git 中一种重新整理提交历史的操作它会将一个分支的提交应用到另一个分支的基础之上。 7.6 git branch -d 分支名删除已合并的分支
7.7 git branch -D 分支名删除未合并的分支
八、解决合并冲突
如果两个分支修改了一份文件的同一行代码git就不知道应该保留哪个内容也就产生了冲突 8.1 设计冲突
我们来重新设计一下用main分支新建文件并提交后新建newb分支 在newb分支修改main.txt的第二行内容并提交 切换回main分支修改main.txt的第二行内容并提交 8.2 冲突现象
尝试合并 可以使用git diff查看冲突 8.3 解决冲突
在合并失败后可以再次编辑该文件此时文件中就会存在冲突的信息 此时就需要手动编辑来解决冲突 当冲突解决后进行添加与提交提交后就会自动合并 如果中途想终止合并也可以使用git merge --abort
九、版本回退
git checkout -b 分支名 提交ID可以回退到指定的版本 其中提交ID可以通过git log --oneline --graph --decorate --all查看同时该指令也可以比较直观的查看当前所有分支。