文件三类别:Untracked tracked Ignored 工作区 add 暂存区 commit 仓库 push/pull 远程
git init (名)创git仓库,默认为当前- git账号全局设置:
git config --global user.name "名" git config --global user.email "邮箱"
仓库根目录下创.gitignore
#注释 *.c a/**/b /开头匹配根目录,否则所有目录 !取消忽略
git check-ignore -v 文件 查看是否忽略
- git ls-files 列出跟踪的文件 -t已跟踪文件 -c已暂存文件 -o未跟踪文件
git status 查看工作区、暂存区状态git diff 工作区和暂存区差异git diff 分支 工作区和分支差异git diff 分支1 分支2两分支差异git add 文件 只暂存修改过的文件,可*.cgit add . 暂存当前目录所有修改过的文件git rm --cached 文件从暂存区中去除git rm 名1 删除本地和仓库的文件git mv 名1 名2mv本地和仓库的文件 git log查看提交历史--graph显示分支结构 --oneline显示一行 --p显示修改信息
git commit -m "信息"
<type>[scope]:<summary> [body][footer]
type:fix(修复)feat(新功能)docs(更改)refactor(代码重构)perf(性能测试)test(功能测试)ci(集成测试)BREAKING DEPRECATED
footer:Fixes #id和Closes #id表示解决
git show id显示具体信息,id为每一提交的标识,不必完整git tag 名 (id)创标签,默认headgit tag 查看标签- 回溯:
git checkout id/main
-
git branch 查看分支git branch 标签名 (id)给分支标签名防丢失,默认HEADgit branch 名 创分支git branch -d 分支名删除已合并分支git branch -D 分支名强制删除分支 -
git checkout 分支 (-b创建)切换分支(修改后还要add、commit) -
git merge 分支合并到当前分支,有冲突,则vscode里选择,add、commit,倾向于多
git clone 仓库网址创一个目录,账号全局设置 再add、commitgit push(不要开外网?)git reset HEAD~数·回退之前的版本git reset --soft保留暂存区和工作区的所有内容,只回溯commit内容git reset --hard删除暂存区和工作区的所有内容,回溯commitgit reset --mixed删除暂存区内容,保留工作区内容,回溯commit
用令牌登录
settings->developer settings->personal access tokens->Tokens(classic)->Generate new token(classic)作为密码
签署commit
gpg --full-generate-key 均默认 名设为github名
sec/与日期间的数字串为密钥
gpg --armor --export 密钥->公钥
SSH and GPG keys->new GPG key
git commit -S -m "" (输入私钥密码)
可invite collaborators,使之有权限在本地push
fork
git remote add 仓库别名 网址 -v查看
git push -u 远程仓库名 main
contribute里open pull request
本源仓库pull requests里Merge pull request(可能要Resolve conflicts)
fork仓库可sync fork里update 在本地git pull 远程仓库名 远程分支名:本地分支名
pull request后再push会改变pull request内容
本源仓库可在pull request里Review changes要求fork者更改,可再approve 可直接修改,再commit,会改fork