安装
sudo apt install git
git init
git clone https://github.com//paisen/an
- git主目录中有一个.git隐藏文件包含仓库全部信息,删除就成普通文件夹了
- 官网创建仓库的时候生成了默认主机名origin 默认分支master
仓库地址 仓库就像一个服务器一样
girt remote -v
查看本地仓库关联的远程库
git status
查看整个仓库各个区文件状态
git add .
全部添加到暂存区 或者加文件名添加单个文件
暂存区记录的只是修改
git reset
撤销暂存区的修改
git diff
查看版本区文件的修改详情
git commit
把暂存区的修改提交到版本区,生成一个新版本
git log --reverse
版本区提交历史记录倒序
git branch -avv
查看全部分支信息
Python企业招聘百万级信息爬取
第一行 中间的是版本号
git commit -am 文件名
暂存区和工作区修改都提交到版本区
git push
后面不加参数 本地master上新增推送到远程同名分支
官网版本号与本地一样就证明成功了
版本控制
git reflog
查看本地仓库所有分支每次版本变化内容 可以回退到任何地方 只存在本地仓库删除就消失
刚传的文件错误
git reset --soft HEAD^
撤销一次提交 软退回
HEAD^^ 撤销两次 HEAD~n撤销n次
或者修改错误后再次上传覆盖
git push -f
回退版本修改 本地版本低需要强制推送
回到修改前
git reset --hard
版本号 回退任意版本
git reset --hard HEAD@{2}
回到最近两次提交版本变化前
穿越到修改后
git reset --hard HEAD@{1}
撤销上一次
自定义快捷键
SSH免密提速
git push 可以不输入密码 提速
ssh-keygen
回车
cat ~/.ssh/id_rsa.pub
复制公钥贴在官网
到仓库主目录 - Use SSH 复制链接
重新clone
git clone git@… 必须是git@开头ssh关联才有用
…
为常用命令自定义简化输入
git config --global alias.简写 status
例1
git config --global alias.简写 "branch -avv"
例2
git config -l
查看配置文件里有简化后的命令
官网修改内容后
git fetch
把远程的分支的信息拉到本地 仅仅是关于分支的信息 版本号无变化
git rebase origin/master
使本地master基于远程master
git pull
在官网修改后 拉取远程库数据到本地 需要将本地的都提交无暂存
分支
git branch分支名
新建分支
git checkout分支名
切换分支
新分支
git checkout -b分支名
创建分支并切换到新分支
新分支内容和master上的版本一样
git push 主机名 本地分支名:远程分支名
主机名默认是origin 本地远程分支相同无冒号
将新分支推送到远程分支
可简写为git push origin 新分支名
git branch -u origin/远程分支名 本地分支名
将本地分支跟踪远程分支就可以直接git push了 在当前分支则不需要本地分支名
git push -u origin 新分支名
也可以推送时候自动跟踪远程
删除分支
git push 主机名 远程分支名
将空分支推送到远程=删除
git push 主机名 --delete 远程分支名
删除分支
git branch -m 原分支名 新分支名
本地分支改名
git branch -m 分支名
本地分支删除
当前分支不能删除
GitHub
.gitignore
.gitignore文件 文件中是过滤不需要上传的文件
- 默认放在仓库主目录下
- 建库时选择语言,对应语言的忽略文件会自动生成
- 建库时忘了,打开git/gitignore选择需要的忽略文件手动放入
Fork 克隆别人仓库到自己Hub 除了issue 不会同步更新
多人协作
- 组长会通过邮箱邀请,收件后Fork组长的库
- issue 项目任务和待解决问题 只在组长库看到
- "fix #1“ commit备注信息里写 出现在组长库时 代表编号#1的issue关闭 组员新增版本提交记录
- PR
Create a merge commit 在组长master生成一个新分支且保留PR中所有提交信息 常用
Squash and merge 压缩 列表整洁 提交数量很多改动还小
Rebase and merge 不生成新提交 提交版本号不同 - 同步主仓库
git pull --rebase up master
git rebase up/master
-
Tags:git tag 标签名 -m 备注信息 提交版本号
备注可省略,当前分支最新提交可省略省略后如下git tag 标签名
创建本地标签 .git/refs/tags
git show 标签名
查看标签
git push origin 标签名
推送标签到远程
git push origin --tags
全部本地标签推送到远程
git push origin:refs/tags/标签名
删除远程标签 标签名也是文件名 本地书签手动删除即可
git tag
查看标签
git checkout 标签名
切换这个版本
git checkout -b 新分支名
将此版本关联到新分支
签出版本完成 -
releases:基于tag,为tag添加更丰富的信息,一般是编译好的文件