打开自己想要存放git仓库的文件夹,右键打开git bush,用git init命令建立仓库
用 ls -a(表示全都要看,包括隐藏的)可以看到git仓库
也可以用 git clone 接github链接(点code选项里面会给链接,结尾是git的那个)
git可以分成三个区域,分别是.git所在目录(工作区,我们建立的文件夹)暂存区(.git/index记录即将提交的修改)本地仓库(.git/objects,记录各个版本数据)
git add就是把代码放到暂存区,git commit就是放到本地仓库
git文件的所有状态:
git add .可以add整个目录
git commit会进入vim,按i会进入修改模式,按esc会退出进入命令模式,输入 :wq保存并退出
也可以直接在终端里用vi file1.txt命令修改文件,可以:help查看帮助
git commit -m "水水水水水水"是常用的commit方式
git reset 回退版本,分为soft,hard和mixed
勾代表保留,×代表清空
误操作了怎么办?用git reflog查看每次操作的编号,找到误操作之前的版本号,用git reset 编号就可以回到这个版本了
git diff查看差异,啥都不加默认比较工作区与暂存区
git diff HEAD比较工作区和库
git diff --cached比较暂存区和库
git diff id1 id2比较两个版本的差异
git diff head~ head比较上一个版本与这个版本的区别
用~2就是上上个版本
rm删除工作区文件的时候记得git add一下把暂存区的也更新掉,这样比较麻烦
直接用git rm更好,只需要最后commit一下就好
.gitignore是忽略文件,通过修改其内容(如echo xxx.log > .gitignore)可以记录那些文件是要被忽略的,不用放入暂存区,仓库。如自动生成的log,中间文件和带有个人信息的文件都要放进去
echo ssss >> file1.txt和linux一样,两个箭头代表加到已有的后面
假如在把文件放入ignore之前文件已经入库了怎么办?用git rm -cached xxx.log,这样可以只删除暂存区中文件,不会动工作区。下次commit库里就没有xxx.log了
也可以忽略文件夹,最后面要加/
具体书写规则如下:
与github交互:
在本地的.ssh文件夹下生成一个密钥(存在一个自己取好名字了的文件里),再把这个密钥输入到github自己的setting那边去,这样对面的仓库就知道这是你了。注意要在自己的ssh文件夹下生成一个config文件,讲一下自己在登陆github的时候使用的是那个文件里的密钥。这样就大功告成了,可以clone自己在github上面的仓库了。
交互就用push,pull