git相关知识
GIT标准操作流程SOP:#提交暂存区文件到
git init #初始化git仓库
git add . #添加当前目录所有文件到暂存区
git commit #提交暂存区到版本库HEAD
git add remote origin ... #为当前仓库添加上游仓库地址
git push -u origin master #把master分支设置为推送到上游的默认分支并且推送
..
git push #推送默认分支
# 电脑同步到上游
git fetch (orgin) branchname #拉取上游的branch到 FETCH_HEAD
git merge FETCH_HEAD #尝试合并FETCH_HEAD 和 HEAD
#或者git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。
git pull (origin) upstream_branchname:local_branchname
git命令的简化过程:
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。git pull origin master
只有origin一个上游 git pull master
已经指定了上游分支master : git pull
仓库的克隆
git clone <repo> <directory>
本地git参数调整
$ git config -e # 针对当前仓库,编辑配置文件
注: 在 Linux 系统中,commit 信息使用单引号 ',Windows 系统,commit 信息使用双引号 "。
已经有一个本地仓库了,怎么上传到github?
流程:创建github仓库 -- 本地设置上游 -- 本地第一次推送 -- 本地第若干次推送
创建github仓库,可在github完成,也可在IDE中 create
本地设置上游 git add remote origin http://github.com/Anionex/...
本地第一次推送,需要设置上游和默认推送分支 如下
git push -u orgin master (orgin必须写,来指定默认远程仓库。这一句话制定了默认远程仓库和分支)
这将让origin仓库的master分支变为默认推送分支, 后续执行 git push相当于前面一大串
本地第若干次推送
直接git push, 除非你想提交别的分支
改错了东西,想要恢复,怎么办?
有两个命令完成这个操作 第一个git reset, 第二个?
git reset 有三种模式 --soft --mixed -- hard
分别对应
head还原
暂存区还原
工作区和暂存区都还原
git log选择自己中意的版本, 或者用HEAD~, HEAD~~~
然后 git reset --hard [version] 回去
更多参考 https://www.runoob.com/git/git-reset.html
gitignore用法
.gitignore文件用来标记不想被tracked的文件
可以在工作树根目录或者子目录处放入
但冲突规则最终生效规则以深度更深的为准
a/b和 /a/b是一样的,第一个slash可以忽略
examples
想ignore所有hello文件,就hello.*
只想ignore当前目录下的,/hello.*
.gitignore文件怎么生效
使用git rm --cache file
不管是在.gitignore中增加规则或删除规则,都是使用git rm --cache file让它生效。
问题
比如.gitattributes文件怎么生效
如何删除仓库并重新初始化——删除git文件夹,并且git init
进入了log状态如何退出?——按q
apt install apt-transport-https
git config --global http.version HTTP/1.1
添加的.gitignore怎么生效?
先执行`git rm --cache .`停止跟踪所有文件,但不删除文件
然后git add . 手动添加文件,本次add会正确添加需要跟踪的文件
git commit
附:git命令速查表