共计 1559 个字符,预计需要花费 4 分钟才能阅读完成。
Git入门笔记
git 分为工作区(Working Directory)和版本库(Repository,或者叫缓存区)
文件回滚(恢复文件)
- 单个文件
工作区回滚:git checkout -- <file>
缓存区回滚:git reset HEAD </file><file>
- 多个文件
工作区回滚:git checkout HEAD .
缓存区回滚:git reset HEAD .
- master回滚(同时回滚工作区和缓存区)
git reset --hard HEAD^
HEAD^(这里表示上一个版本,也可以换成其他版本号)
版本历史
git log --graph
分支图
git log --pretty=online
一行显示
命令历史
git reflog
比较不同
git diff
删除文件
- 删除工作区文件:
git rm </file><file>
- 删除缓存区文件:
git rm </file><file> && git commit
从远程仓库拉倒本地,并替换所有改动
git fetch origin
或者 git reset --hard origin/master
远程仓库
- 创建ssh-key 参考链接:https://www.cnblogs.com/horanly/p/6604104.html
ssh-keygen -t rsa -C "youremail@example.com"
- 克隆仓库
git clone https://...
- 分支管理
git checkout -b dev
创建并切换到dev
git branch dev
创建dev
git checkout dev
切换到dev
git branch
查看分支
git merge dev
合并dev上变动到master
git merge --no-ff -m "merge with no-ff" dev
准备合并dev分支,–no-ff参数,表示禁用Fast forward
4.错误分支冻结
git stash
冻结分支
git stash list
冻结分支列表
git stash apply
恢复
git stash drop
删除
git stash pop
恢复并删除
git stash apply stash@{0}
恢复某个冻结
本地与远程
- 本地master与远程master 默认对应。查看
git remote -v
- 推送分支
git push origin dev/master
- 创建本地dev 并与远程dev连接
git checkout -b dev origin/master
冲突
git pull <remote> <branch>
git branch --set-upstream dev origin/</branch><branch>
- 手动解决冲突
git add . & git commit -m "描述" & git push ...
忽略文件.gitignore
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa</branch></remote></file>
GIT配置
git config user.name "gitlab's Name"
git config user.email "gitlab@xx.com"
git config --list
公私找不到
首先,清除所有的key-pair
ssh-add -D
rm -r ~/.ssh
删除你在github中的public-key重新生成ssh密钥对
ssh-keygen -t rsa -C "xxx@xxx.com"
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/id_rsa*
接下来正常操作在github上添加公钥
- 将公钥内容(~/.ssh/id_rsa.pub)复制到剪切板
- 在github上添加公钥时,直接复制即可
- 保存测试:在终端 ssh -T git@github.com
正文完