目录
一、恢复本地工作区
重置本地工作区,同git工作区一致
二、删除文件
三、创建一个临时暂存区(栈结构存储暂存区状态)
将现在暂存区的内容放入到临时暂存区中
类似于栈的结构
又恢复回来(apply你使用完之后,stash里面还会存在这个保持的暂存状态,使用pop之后,就是直接弹出)
四、写内容到文件中echo
五、.gitignore文件
告诉git仓库,.gitignore里面包含的文件不需要加入到git仓库中
比如说GitHub上面的仓库里面就会添加
六、git的备份
git常用的传输协议
八、github上ssh的使用
建议去GitHub上看它的官方文档
在本地创建公钥和私钥
生成的公钥和私钥
进入到GitHub的个人信息里面
将我们之前创建的公钥内存张贴过来
九、创建个人仓库
创建
仓库中的功能描述
创建出来之后仓库里面会出现一个文件
1、创建本地的远端站点remote add
2、拉去远端仓库fetch
3.合并本地和远端不一致merge
不改动
通常采用缺省策略(recursive)
4、push到远端
十、GitHub创建及使用分支
在GitHub上创建分支
模拟两个人的工作
查看对应分支
切换分支
提交及push到远端,放入到对应的分支下面(由于我们已经指定了分支以及远端,所以直接push就可以了)
十一、fetch和pull的区别
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
十二、checkeout创建分支
另外一个用户拉去远端
查看多出来的分支,本地还没有,但是已经与远端的分支建立起来了连接
创建分支
十三、工作冲突
1、不同用户修改了不同文件
用户1修改一个readme.md文件
用户2 这个时候准备push的时候
首先fetch下来远端的分支
merge远端分支
保持不变
最后push到远端
2、不同用户修改了不同文件
首先用户1和用户2都从远端拉取项目
用户1先修改问index文件,并且提交上去
然后用户2修改index文件,push到远端的时候就会报错
修改办法:
用户2首先从远端fetch下来修改后的项目(可以时候push,等同于fetch+merge操作)
进行merge合并,使用路径或者唯一标识 都可以
3、不同人修改了同一文件的同一个区域
两个用户同时都更新当前的远端项目
用户2首先修改完毕,提交 到远端
用户1页修改了同一处,提交
这个时候用户1首先得push
当我们push远端的时候,它会自动merge,但是现在需要我们手动去merge
直接打开冲突文件
head里面就是冲突文件,需要我们自己来选择,然后选择好后删除head提示就行
查看,提示的意思就是:如果你觉得还是有冲突,就退出merge操作(执行git merge --abort),如果修改完毕就执行提交操作(git commit)
4、不同人分别变更了同一文件的文件名和文件内容
两个账号都更新到最新
用户1更新文件名,并且提交
接着用户2修改文件内容
提交报错
用户2直接push,Git会直接智能的选择merge
5、不同人修改了同一文件的文件名
用户1 修改文件名之后提交
用户2页修改文件名之后准备提交,我们pull一下看看
这个时候git就报冲突
我们自己选择需要确定的文件名
然后push就可以了