- 查看是否安装了 git:
git
- 安装
sudo apt-get install git
- 创建版本库文件夹
mkdir yy_git
- 进入文件夹
cd yy_git
- 初始化,将该目录变成 git 可以管理的仓库
git init
- 这时出现了 .git 目录,这个目录是 git 用来跟踪管理版本库的,不要随便修改
- git 只能跟踪文本文件的改动,不包括图片、视频以及 word 类型的文档等
- 将文件添加到暂存区
git add readme.txt
- 将暂存区的所有改动提交到当前分支
git commit -m "some comment word"
- 查询当前状态
git status
- 查看修改了什么内容
git diff readme.txt
- 查看提交日志:
git log
- 查看提交日志并显示为一行:
git log --pretty=oneline
- 【回到过去】回退到上一个版本:
git reset HEAD^
- 【重返未来】回退之后又后悔了,想再回到之后的版本:需要查找并使用想回退到的版本号(前几位即可):
git reset 61fbbf4
- 【重返未来】使用如下命令查看所有的操作(或查找版本号):
git reflog
- 丢弃工作区(未 add)的修改:
git checkout -- readme.txt
- 将暂存区的修改撤销掉,放回到工作区(unstage,即从 add 未 commit 的状态回到未 add 的状态):
git reset HEAD readme.txt
- 删除文件
git rm test.txt
再git commit -m "..."
- 删错了文件也可以回退,依然用
git checkout -- filename.txt
因为 checkout – file 实际就是用版本库里的最新版本替换工作区的版本 - 如果一个文件被提交到版本库,那么永远不会误删,但是对 remove 的 git checkout – file 只能恢复到版本库中的最新版本,对于最后一次提交直到 checkout 之间所做出的所有修改,都无法恢复(实际上在未 commit 就删除时会有提示)
分支相关
- 查看分支:
git branch
(只有提交过的分支才能被查看到) - 创建并切换分支:
git checkout -b dev
或git switch -c dev
(注:switch 为新版本 git 所有) - 创建分支:
git branch dev
- 切换分支:
git checkout dev
或git switch dev
- 合并某分支到当前分支:
git merge dev
- 删除分支:
git branch -d dev
- 冲突:当两个不同分支有不同的 commit 时,merge 时会产生冲突
git status
可以查看冲突cat readme.txt
时,git 会用 “>>>>” “<<<<” “====” 等标注出文件中冲突的部分- 手动修改冲突,再次 add 和 commit
- 查看分支图:
git log --pretty=oneline --graph --abbrev-commit
abbrev-commit 表示只显示版本号前面的部分
远程相关
- 创建 SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
,用自己 home 目录下的公钥 .ssh/is_rsa.pub 来 new setting 中的 SSH key - 在 .git 所在目录下用如下命令将本地与远程库关联:
git remote add origin https://github.com/YemaY/deepCloneFinder.git
(一般远程库都叫做 origin) - 将本地当前分支 push 到远程库:
git push -u origin master
拉取远程某分支(origin/develop)到本地
在某文件夹下:
git init
git remote add origin git@github.com:XXXX/XXXXXX.git
git fetch origin develop
git checkout -b dev origin/develop
dev 为本地分支,develop 为远程仓库 origin 的 分支
git pull origin develop