1 创建版本库
- mkdir learngit
- cd learngit
- pwd // 显示当前目录
- git init //将这个目录变成 Git 可以管理的仓库
- ls -ah //可以看到 .git 目录,它默认是隐藏的
2 添加文件到仓库
- git status // 查看有什么改动
- git add file.txt / git add --all // 将文件添加到暂存区
- git commit -m "message" // 将文件提交到 git 仓库
时光穿梭
- git diff readme.txt // 查看修改的内容
- git log // 显示最近到最远的提交日志
- git log --pretty=online // 显示最近到最远的提交日志,简化信息
- git reset --hard HEAD^ // 几个^代表回退到上几个版本,也可以写成 git reset --hard HEAD~20
- git reset --hard <commit_id> // 回到指定版本
- git reflog // 查看命令历史,以便确定要回到未来哪个版本
撤销修改
- git checkout -- file // 撤销 readme.txt 在工作区的修改,回到最近一次 git commit / git add 的状态
- git reset HEAD :将暂存区的修改撤销,重新放回工作区
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库。
添加远程库
在 gitbub 上创建了自己的仓库之后,在本地的 learngit 仓库下运行命令:
git remote add origin git@server-name:path/repo-name.git
示例:
git remote add origin git@github.con:qiqi/learngit.git,将 qiqi 换成自己的 Github 账户名
将本地库的所有内容推送到远程库上:
git push -u origin master -u 参数,git 会将本地的 master 分支内容推送到远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来
创建及合并分支
- git branch dev // 创建 dev 分支
- git branch -b dev // 创建并切换到 dev 分支
- git merge branchName // 合并指定分支到当前分支
- git branch -d dev // 删除 dev 分支
- git switch -c dev // 创建并切换到新的 dev 分支
- git switch master // 切换到已有分支