廖雪峰老师Git教程学习笔记: https://www.liaoxuefeng.com/wiki/896043488029600
Git是先进的分布式版本控制系统。
Linux为了管理Linux代码而使用C语言开发的版本控制系统
Linux安装(Ubuntu版本)
apt install git
Windows安装
下载安装软件安装:https://git-scm.com/downloads
安装完成之后需要进行配置:
git config --global user.name "Your name"
git config --global user.email "Your email"
版本库又名仓库,英文名repository,可以理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
git init
git add filename1 filename2 ...
git commit -m "Your commit"
git status
git log
# 或者
git log --pretty=oneline
# HEAD表示当前版本,回退到上一版本则写为HEAD^,上上一版本为HEAD^^
git reset --hard HAED^^
# 可以使用~简写多版本回退
git reset --hard HEAD~2
# 实际上可以通过commit的版本号来指定回退(或者前进)的具体版本
git reset --hard commit-id
git reflog
git checkout --filename
git rm filename
生成ssh key
ssh-keygen -t rsa -C "Your email"
接下来全部回车,然后会在当前目录下生成两个文件:id_rsa
和 id_rsa.pub
添加id_rsa.pub
的内容到你的Github账号:
# 依次展开: Settings > SSH and GPG keys >New SSH key
随便起个Title,然后复制Key点击添加SSH key即可完成!
新建Github仓库
将本地仓库关联到远程仓库
git remote add origin [email protected]:yourname/your-repository.git
将本地库的内容推送到远程库
# 第一次推送使用 -u参数,以后每次推送都不必用此参数
git push -u origin master
git clone [email protected]:yourname/your-repository.git
# checkout命令用来切换分支,-b参数表示创建分支
git checkout -b branch-name
# 可以通过branch命令创建分支而不切换
git branch branch-name
# 可以通过checkout 命令切换分支
git checkout branch-name
git branch
git checkout branch-name
git merge branch-name
git branch -d branch-name
需要将冲突的文件手动修改后再进行合并
git log --graph
Fast-forward模式合并看不出曾经做过合并操作,为了能看出曾经做过合并操作,可以带参数合并:
git merge --no-ff -m "Your commit content" branch-name
稳定版本使用master分支,开发版本使用dev分支
当出现bug需要修复时,需要先保存当前分支的工作现场再切换到新分支进行修复:
git stash
查看stash保存的内容:
git stash list
恢复stash中的内容
# 恢复而不删除stash list中的内容
git stash apply
## 恢复并删除stash中的内容
git stash pop
当有新功能要添加时,可以使用创建新的feature分支方法;开发完成后合并到主分支并删除该分支即可;当有冲突需要强制删除分支时使用D
参数:
git branch -D feature-branch
git remote
##或者
git remote -v
一般来说,需要推送到远程的分支往往是需要共同开发的分支,比如master和dev分支,而bug分支和feature分支一般只有本地需要
git push origin master
git push origin dev
克隆远程分支到本地时,默认只克隆了master分支,如果需要克隆dev分支,需要指定远程分支:
git checkout -b dev origin/dev
当推送到远程分支产生冲突时,需要先将远程分支最新的版本拉取下来:git pull
当拉取出错时,需要指定本地dev分支跟远程分支的关联关系
git branch --set-upstream-to=origin/dev dev
git rebase
可以为某次commit添加标签:
# 默认标签位于当前最新的commit
git tag tag-name
# 使用commit指定标签位置
git tag tag-name commit-id
# 使用git tag命令查看标签
git tag
# 使用show命令查看标签信息
git show tag-name
git tag -d tag-name
git push origin tag-name
# 或者全部推送
git push origin --tags
git push origin :refs/tags/tag-name
在github上Fork其他作者的项目并做修改,可向作者提交pull request
git config --global color.ui true
定义一个.gitignore
文件写入忽略的文件名
此时仍旧可以通过f
参数来强制添加
git config --global alias.new-command origin-command
https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664