|概述
git是一个分布式版本控制系统,最初是由Linus Benedict Torvalds在2005年以GOL发布。之前在一家准备倒闭的广州外包公司用SVN提交代码,git一些指令快忘了。故在这个热到飞起夜晚写一篇笔记重新记录下;另外详细的git指令还得是看官方文档,我这里只是乱写简单做个笔记。
|创建新仓库&克隆仓库
应该先检查一下有没有安装git
hezefeng@hezefengdeMac-mini ~ % git version git version 2.30.0
2. 新建仓库、进入仓库之后使用git init初始化
已初始化空的 Git 仓库于 /Users/hezefeng/Desktop/gitdemo/.git/
可以克隆本地或者远程仓库的版本
git clone /path/to/repository ... git clone username@host:/path/to/repository
|工作流
这里引用一张一看就懂。在git中的工作流中有工作目录(持有实际文件),第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后一个是HEAD,指向你最后一次提交的结果。
|添加到缓存区、提交到HEAD与推送
这里通过一个demo来演示:
在已经初始化的文件夹中新建一个index.html文件,用vscode打开的会看到后面有个绿色字母U
2. 通过指令 git add index.html,可以发现文件后面有个暗绿色字母A。
3. 通过指令 git commit -m 'xxxx'将文件从缓存区送至HEAD区。
4. 如果有改动会发现文件编程M黄色,若直接提交则会提示你需要重新提交内容或丢弃工作区的改动。
位于分支 development 尚未暂存以备提交的变更: (使用 "git add ..." 更新要提交的内容) (使用 "git restore ..." 丢弃工作区的改动) 修改:index.html 修改尚未加入提交(使用 "git add" 和/或 "git commit -a") hezefeng@hezefengdeMac-mini gitdemo % git add index.html hezefeng@hezefengdeMac-mini gitdemo % git commit -m '又一次提交' [development 0940a6b] 又一次提交 1 file changed, 1 insertion(+), 1 deletion(-)
|推送到远程仓库
1. 新建一个属于你的repository
2. 生成然后查询你ssh-key,并在github的setting里设置ssh keys
ssh-keygen -t rsa -C "xxx@xxx.com" //执行后查询,并复制那一串东西 cat ~/.ssh/id_rsa.pub
3. 关联远程仓库并提交
git remote add origin git@github.com:FengZeHe/123.git(你的远程仓库地址)hezefeng@hezefengdeMac-mini gitdemo % git push origin development枚举对象中: 6, 完成.对象计数中: 100% (6/6), 完成.使用 8 个线程进行压缩压缩对象中: 100% (4/4), 完成.写入对象中: 100% (6/6), 700 字节 | 700.00 KiB/s, 完成.总共 6(差异 1),复用 0(差异 0),包复用 0remote: Resolving deltas: 100% (1/1), done.To github.com:FengZeHe/123.git * [new branch] development -> development
|分支、分支的更新与合并
我们这时候新建一个分支,叫master分支。在该分支下新建一个index.js和index.css文件。我们的目标是将development分支下的index.html合并到master下。
git checkout master .. git merge development
|写在最后
如果文章对你有所帮助,可以搜索公众号 programmerHe 。我在公众号等你。