git学习
参考链接:廖雪峰git教程
版本回退:
- git reset --hard HEAD^20
- HEAD之前20个版本
- --hard 撤消commit与对应的更改
- --soft 撤消commit
- git reflog
暂存区(stage or index):
删除:
- rm a.txt
- git rm a.txt (+ git commit)从版本库中删除该文件
- git checkout -- a.txt 恢复误删的a.txt (把误删的文件恢复到最新版本)
- git checkout 用__版本库__里的版本替换__工作区__的版本
远程仓库:
- 本地Git仓库和github仓库之间的传输是通过SSH加密的
ssh-keygen -t rsa -C "xxx@yyy.com
- 新建仓库+推送
- git remote add origin git@github.com:yourname/XXX.git
- 远程库的名字为origin
- git push -u origin master 第一次推送master分支的所有内容
- git push origin master
- 新建仓库+克隆
- 概念
- HEAD -> master -> 提交
- 每次提交 master 分支都向前移动一步
- 分支操作命令
- git checkout -b dev
- git checkout master; git merge dev
- git merge 合并指定分支到当前分支
- Fast-forward模式 当删除被合并的分支后,git log中丢掉__是从这个分支合并__的信息
- 禁用--no-ff 禁用后 Git会在merge时生成一个新的commit
- 普通模式合并,能看出来曾经做过合并,git log 中有merge分支的信息
- git branch -d dev
- 带参数的git log
- git log --graph --pretty=oneline --abbrev-commit
- git log --graph
- stash
- 删除未被合并的分支
- 推送/抓取分支
- git push origin dev
- 拉取远程dev分支并创建本地dev分支 git checkout -b dev orgin/dev
- git branch --set-upstream-to=origin/dev dev
- git pull ( git pull origin dev )
标签:
- 概念
- 标签是指向某个commit的指针
- git show
- git tag -a / -d
- 删除远程标签,先从本地删除,然后 git push origin :refs/tags/
自定义git:
- Git显示颜色
- git config --global color.ui true
- 忽略某些文件
快捷键
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
配置文件
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:michaelliao/learngit.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
last = log -1
git fetch / pull 区别
- 参考文献
- 区别在于取回更新后是否自动合并
- 概念
- tracking (分支)追踪关系
- git branch --set-upstream master origin/erp01
- 指定master分支追踪origin/erp01
- git pull <远程主机名> <远程分支名>:<本地分支名>
- git pull origin erp01:master
- 取回origin主机的erp01分支与本地的master分支合并
- git push <远程主机名> <本地分支名>:<远程分支名>
- git pull origin erp01:master
- 取回origin主机的erp01分支与本地的master分支合并
git常用命令
- 更新代码
- git fetch --all (fetch all remotes)
- git push origin remotes/upstream/master:master -f
- 将fetch下来的remotes/upstream/master分支push到origin远程仓库master分支上,省略了merge的commit
- git branch -va查看fetch后的结果
- git reset --hard HEAD~20
- git checkout master
- git pull (将最新代码拉取到本地)
- 需要保存未提交的内容
- git commit --amend --no-edit
git相关工具
待补充
git 常用命令
原文:https://www.cnblogs.com/wangzhiyi/p/9164920.html