(1)建立新专案
命名新专案,并记录网址
https://github.com/xxxxx/gittest.git
(2)新增资料夹,并移动进去
mkdir '资料夹名称'
cd '资料夹名称'
(3)将该资料夹与github专案连结(clone)
git clone https://github.com/xxxxx/gittest.git
目前为空,因为github上没资料
(4)进入github(gittest)资料夹
cd gittest
(5)加入档案or编辑档案
touch > git add . > git commit -m '备注'
(6)第一次推
git remote add '数据库名称'
git branch -M 分支名称
git push -u 数据库名称 分支名称
(7)更新资料(推送数据库到 Github)
git push
要输入帐号密码,确认是本人
建立分支
(8)建立分支
git branch '分支名称'
https://ithelp.ithome.com.tw/upload/images/20220101/20137684l3oSkR5cHK.png
(9) 浏览目前分支
git branch
(10) 移动到该分支
git checkout '分支名称'
(11) 进入该分支後,才能编辑分支内的资料、并查看更新
git status
(12) add + commit
git add .
git commit -m '备注'
此时浏览分支有2,内容不同,push需要指定remote及branch
之所以会这样的缘故是因有非常多的数据库(有正式的或是测试用的),
那他第一个预设通常都是 origin 就像 master 一样
(13) push
查询有多少个远端数据库
git remote
git push '数据库名称' '分支名称'
案例:
没变更主要branch,变更 更新branch:
主要branch(main)与更新branch(feature1)同时更新,无冲突时:
(a)先把HEAD移动到主要专案上
git checkout 'main(分支名称)'
(b)接着合并想合并的版本(两版本皆须已commit完成)
git merge 'feature1(分支名称)'
(c)此时主要分支就会有全部的资料
案例:
主要branch(main)与更新branch(feature1)同时更新,有冲突时:
(a) 先把HEAD移动到主要专案上
git checkout 'main(分支名称)'
(b) 接着合并想合并的版本(两版本皆须已commit完成)
git merge 'feature1(分支名称)'
(c) 解决上图问题,无法自动合并故改为 手动合并
(d) add . + commit -m '备注'
(a) 档案拉下来
git pull
(b) 解决问题,无法自动合并故改为 手动合并
(d) add . + commit -m '备注'
实务上会使用git pull + git merge 先将同事资料拉下来
git push 到 github 会保留本地数据库commit
(1)尚未push把commit还原(仍保留档案在工作目录)
git reset HEAD^
(2)尚未push把commit还原(档案删除)
git reset HEAD^ —hard
(3)还原所有,还原工作目录与索引,会与最後一次commit保持一样
git reset —hard
(4)尚未commit 索引档案退到工作目录
git reset HEAD
使用 rebase 合并
git rebase 'branch名称'
merge:
分支在同一条线上时,merge会快转
但分支在不同线上时,不会快转此时branch(main)内已经包含更新branch(feature1)
但更新branch(feature1)仍为原更新branch(feature1)
(git checkout feature1)
https://backlog.com/git-tutorial/tw/stepup/stepup1_4.html
rebase:虽然但分支在不同线上,但有快转效果(使分支在同一条线上),并有完整历史纪录
git reflog
(1) 远端版本库不止一个,这个命令会将它们全部列出来。
git remote -v
git2 https://github.com/xxxxx/tryconnect.git (fetch)
git2 https://github.com/xxxxx/tryconnect.git (push)
git3 https://github.com/xxxxx/text-1.git (fetch)
git3 https://github.com/xxxxx/text-1.git (push)
origin https://github.com/xxxxx/tryconnect.git (fetch)
origin https://github.com/xxxxx/tryconnect.git (push)
(2) 查询有多少个远端数据库
git remote
(3) 推资料进github
a. 将github与本地资料夹连结
git remote add '远端数据库名称' https://github.com/xxxxx/tryconnect.git
b. 新增branch main
git branch -M '分支名称'
c. 资料推到branch
git push -u '远端数据库名称' '分支名称'
只挑自己想要的commit合并到其他branch
(1) 到该分支挑选想要的commit
git checkout '分支名称'
git log
(2) 回主要分支,抓取
git checkout '分支名称'
git cherry-pick 'log版本号'
ex:还原不小心删除档案,救回来
(1) 查询历史纪录
git reflog
(2) 还原commit
git reset '想还原的编号'
(3) 查看commit(此时档案还没复原,仅复原commit)
git log
(4) 还原commit + 档案
git reset '想还原的编号' —hard
情境:资料写到一半做别的事情,很快就要回来继续写
(之前有commit过,但目前无需再更新commit)
(1)暂时储存当前目录
git stash
此时 git status 不会有东西(因非commit)
(2)浏览 git stash 列表
git stash list
(3)还原暂存
git stash pop
step1.回之前暂存过的分支
step2.还原 暂存档案(git stash)
(4)清除最新暂存
git stash drop
(5)清除全部暂存
git stash clear
(6)把暂存纪录带到其他branch作法:
git stash
git checkout '其他branch名称'
git stash pop
标签是用於标记特定的点/提交的历史
通常会用来标记发布版本的名称/号码(如:v1.0)。
(1)新增轻量标签( 只新增标签 )
git tag '标签名称'
(2)新增标示标签( 新增标签 + 标签详细资料 )
git tag -am ''详细资料'' '版本名称'
(3)查询标签
git tag
(4)切换到该标签的commit
git checkout '版本名称'
切换回原本的
git checkout '分支名称'
(5)查询详细标签
git tag -n
(6)删除标签
删除标签不会影响commit的内容
git tag -d '标签名称'
git status用来看有init的资料夹内,档案情形
(1) modified file
如果更动任何一个project file,那只档案的状态就会变成modified。
(2) Changes to be committed
(将要提交的档案)
(3) Changes not staged for commit
(被更动但尚未要提交的档案)
(4) untracked file (未被追踪档案)
所有新增出来、还没用git add的档案
(5) new file
untracked file被git add之後,状态就会变成new file,commit之後就变成project file。
再做一个新的 Commit
来取消不要的 Commit
(1) git log 查看欲恢复的commit
(2) git revert ‘版本号’
此时 log 会多一个 commit
(3) git push
推到远端资料库
尽量不要一起做多个commit
因revert会恢复到该commit的全部状态
个别档案不好追历史纪录,会因此遗失
https://www.youtube.com/playlist?list=PLYrA-SsMvTPOZeB6DHvB0ewl3miMf-2tj
git init
git config --global user.email "你的mail"
git config --global user.name "你的名字"
git config --list
mkdir '资料夹名称'
touch '档案名称'
git add .
git commit -m '备注'
检查
git status
https://github.com/xxxxx/tryconnect.git
*remote非branch名称
*可在config档案内看到remote资料
(1)将github与本地资料夹连结
git remote add '远端数据库名称' https://github.com/xxxxx/tryconnect.git
(2) 新增branch main
git branch -M '分支名称'
(3) 资料推到branch
git push -u '远端数据库名称' '分支名称'
此时档案config内会显示连结的git网址
url = https://github.com/xxxxx/tryconnect.git
git add .
git commit -m '备注'
git push
git push '数据库名称remote' '分支名称branch'
HEAD预设都会指向最新的commit
git log
git checkout '前四码'
git checkout "master or main...(看要回去哪个分支)“
branch就像是便利贴,会贴在commit位置上
前述6.将github与本地资料夹连结时有建立分支
(1) 开新分支
git branch '分支名称'
(2) 浏览目前分支
git branch
(3) 切换分支
会去到该branch的最新commit处,HEAD也会过去
git checkout '分支名称'
(4) 合并分支
A.合并分支
仅有更新branch(feature1)时
a. 先把HEAD移动到主要专案上
git checkout 'main(分支名称)'
b. 接着合并想合并的版本(两版本皆须已commit完成)
git merge 'feature1(分支名称)'
c. 此时主要分支就会有全部的资料
B.自动合并
(1)主要branch(main)与更新branch(feature1)同时更新,无冲突时:
(a)先把HEAD移动到主要专案上
git checkout 'main(分支名称)'
(b)接着合并想合并的版本(两版本皆须已commit完成)
git merge 'feature1(分支名称)'
(2)主要branch(main)与更新branch(feature1)同时更新,有冲突时:
同一行不同内容
(a) 先把HEAD移动到主要专案上
git checkout 'main(分支名称)'
(b) 接着合并想合并的版本(两版本皆须已commit完成)
git merge 'feature1(分支名称)'
(c) 解决上图问题,无法自动合并故改为 手动合并
(d) add . + commit -m '备注'
https://backlog.com/git-tutorial/tw/stepup/stepup1_4.html
reset可以带着HEAD及branch到别处的commit
(1)把commit还原(仍保留档案在工作目录)
git reset HEAD^
(2)把commit还原(档案删除)
git reset HEAD^ —hard
(3)还原不小心删除档案,救回来
a. 查询历史纪录
git reflog
b. 还原commit
git reflog ’想还原的编号’
c. 查看commit(此时档案还没复原,仅复原commit)
git log
d. 还原commit + 档案
git reflog ’想还原的编号’ —hard
A. 开启资料夹
open .
B. 偷懒设定缩写指令
Git 缩写:
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.ci commit
C. 观看所有 config (档案)的设定:
Mac:~/.gitconfig
Win:C:\Users$USER
D. 尚未add(索引)的档案,删除
查看
git clean -n
删除
git clean -f
E. 索引档案退到工作目录
git reset HEAD
F. Github只有一个分支时可直接用git push会推到Github,
若有新增其他分支则使用git push -u ’远端数据库名称’ ‘分支名称’
G. Github的Source 要对外给人家看的branch
H. 实务上要 推资料 时
1.git checkout 分支
2.git pull 先将同事资料拉下来
3.git merge 或手动修改冲突合并
4.git push 再推上资料
I. 作业时,先将档案更新至最新(pull)再作业
VScode 安装 Git Graph 选支线
Master 以及 Develop > 长期分支
主要是用来放稳定、随时可上线的版本。来源只能从别的分支合并(merge)过来,tag版本。
所有开发的基础分支,当要新增功能的时候,所有的 Feature 分支都是从这个分支切出去的。而 Feature 分支的功能完成後,也都会合并回来这个分支。
当线上产品发生紧急问题的时候,会从 Master 分支开一个 Hotfix 分支出来进行修复,Hotfix 分支修复完成之後,会合并回 Master 分支,也同时会合并一份到 Develop 分支。
Develop 分支够成熟了,就可以把 Develop 分支合并到 Release 分支,上线前的最後测试。测试完成後,Release 分支将会同时合并到 Master 以及 Develop 这两个分支上
新增功能时使用,Feature 分支都是从 Develop 分支来的,完成之後会再并回 Develop 分支。
到底什麽式Vue directives Vue directives简单来说就是一种可以挂在HTML...
这篇将会综合前面的 GPIO 与 IIO 的知识,帮一个常见的红外线感测器 -- TCRC5000 ...
猫咪跑步 ( 超长背景 ) 教学原文参考:猫咪跑步 ( 超长背景 ) 这篇文章会介绍,如何在 Scr...
大家好,我是YIYI,今天我要来展示过去24天来努力的结晶了。 影片介绍 一开始会进入写着SECRE...
Hashicorp Nomad: Application Logs AP log又多又杂,相信大部分...