Git就是一个文件管理工具,它可以保存文件的每一个历史记录,以便查看每一个历史节点的文件变动情况和把错误的的历史节点回滚。
Git在线教程:
https://learngitbranching.js.org/?locale=zh_CN
基础背景知识
分支
分支可以先理解为一个新文件夹。
一些默认约定:
master = 主分支(需要确保稳定性)(默认分支)
非master = 一些有功能性的分支
在实际开发中,各个分支有明确功能含义,在使用之前需要了解一下,Reference:
https://juejin.cn/post/6844903635533594632
简单的说,就是git帮你备份了很多个文件夹,通过这个文件夹名字,就能跳转到这个文件夹。
通过git status
命令查看当前分支情况,以及未提交文件情况。
Git的三个空间的认识
Git必须要懂的概念,不懂就查到懂为止。
(抄袭别人的图,凑合看吧...)
-
工作区
就是平时本地编辑文件的地方,当使用add
时,就是将文件从工作区提交到暂存区git add file1 # file1文件就提交到暂存区 git add . # 提交全部 git add -A # 也是提交全部
-
暂存区
当使用commit
时,就是将文件从暂存区提交到暂存区# 当使用 git commit -m "prompty" # 就是把file1的文件从暂存区提交到远程版本库的master分支
-
版本库(本地)
本地版本库,默认使用master分支
回退版本:
当然,还有一个远程版本库概念。
信息、状态查询
必须在拥有.git 的文件夹下操作,不然提示:
fatal: not a git repository (or any of the parent directories): .git
-
查看当前状态
git status
-
tag查看当前库的更新版本
git tag
-
看版本
git log
Git 全局设置
-
git config
git config --global user.name "Mysticbinary" git config --global user.email "Mysticbinary#163.com" # 查看本地全局用户配置信息 q 退出 git config --global --list git config --list
-
remote
需求:当然每次都这么输入这个路径很麻烦,使用remote命令映射一个路径。
查看当前已有的远程库:
git remote git remote -v # 全部列举
-
添加远程仓库
指定一个简单的名字,便不需记忆URL路径了,以便将来引用。git remote add [shortname] [url]
-
删除远程仓库
git remote remove [shortname]
常用命令
-
init 初始化本地文件夹
$:git init
-
查看是否初始化成功
ls -la drwxr-xr-x 1 Administrator 197121 0 九月 7 16:56 .git/ #(.git=就是暂存区)
-
查看当前(工作区)的状态
git status
-
add 到暂存区
$:git add -A $:git add . (都是上传全部)
-
commit 到版本库
提交到本地版本库,也相当于在本地创建了一个版本git commit -m "2017-9-7 写一个A函数" #注释一般写:时间、做了什么事情
git commit -a #会先把所有已经track的文件的改动`git add`进来,然后提交 git commit -a -m 'v1.0.1' git commit -am "xxx" # 正确写法 git commit -ma "xxx" # 错误写法 # 加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区。注意,新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。 git commit -m 'word...' # 建议写法
-
push 上传远程仓库(HTTPS方式)
push 写全路径上传git push https://git.oschina.net/deepseawhale/testgit.git master // https://git.xxxx.git = 上传到那个远程版本库 // master = 那个分支
push 省略路径上传
git push [origin] [master] // 默认填上
-
fetch 从远程仓库获取数据来更新本地库
如果是多人协作,需要此功能,当你想提交代码的时候,可以先 将本地的代码库和远程库对比,以查看是否有变动。git fetch master:temp git diff temp git merge temp #如果temp分支不想要保留,可以使用如下命令删除该分支: git branch -d temp Deleted branch temp (was 40f902d). #如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支。
-
clone 下载代码(HTTPS方式)
cd 进到你想要存放代码的路径git clone [URL]
-
rm删除本地Git库
the method for git delete all commits.rm -rf .git
免密登录
有两种方式:
- SSH提交公钥方式 (推荐使用)
- 在配置文件里面写账号密码(不安全,会把账号密码文件上传远程库,私人库可以用这个方式)
SSH of Pulic Key Login Github
- Setting pulic key
- Use SSH path failed, but use HTTPS path succeed.