创建仓库
$git init
仓库创建后,目录中会新增一个 .git 文件夹,使用 $ls -ah 可见,这里面包含了所有 git 操作需要的东西
存储和提交
$git status
查看暂存区的状态,可以列出当前目录中”还未被跟踪的文件“(Untracked files)、”已修改但还未添加到暂存区的文件“(Changes not staged for commit)、”已添加到暂存区等待提交到本地仓库的文件“(Changes to be committed)
$git add <path>
将指定文件或目录的新增和修改添加到暂存区
$git add -A
”A“代表 all,意为把工作区的所有变化包括新增、修改和删除添加到暂存区
$git commit -m "message"
将暂存区的内容提交到仓库的当前分支中
$git rm <path>
同时从工作区和暂存区删除指定文件,再使用 $git commit 提交,删除仓库中的文件
查看提交历史
$git log
查看仓库的提交历史
版本回退
$git reset --hard <commit id>
回退到某个版本,工作区的源码也会变为这个版本的内容
<commit id>可以使用 HEAD、HEAD^、HEAD~n 代替,分别表示当前版本,上一版本,以上n个版本
$git checkout <commit id> <path>
将某个文件在指定节点的版本加到暂存区和工作区中
$git revert <commit id>
回退到某个版本,生成一个新版本来撤销之前的所有版本,但它们都会被保留
分支管理
$git branch <branch name>
创建一个新的分支
$git checkout <branch name>
切换到另一个分支
$git checkout -b <branch name>
创建并切换分支
$git merge <branch name>
合并某分支到当前分支
$git branch -d <branch name>
删除分支
远程仓库操作
$git clone [-o <自定义远程主机名>] <远程版本库的地址> [<自定义本地目录名>]
从远程主机克隆一个版本库,该命令会在本地主机生成一个目录,与远程主机的版本库同名
$git remote
列出所有远程主机
$git remote show <远程主机名>
查看该主机的详细信息
$git remote add <远程主机名> <地址>
用于添加远程主机
$git remote rm <远程主机名>
用于删除远程主机
$git remote rename <原主机名> <新主机名>
用于重命名远程主机
$git fetch <远程主机名> [<远程分支名>]
将某个远程主机的更新,全部取回本地,如果指定了分支名,则只取回该分支的更新。所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取,使用 $git branch -a 可以查看包括远程分支在内的所有的分支
$git pull <远程主机名> <远程分支名>:<本地分支名>
取回远程主机某个分支的更新,再与本地的指定分支合并,这等同于先做 $git fetch,再做 $git merge 操作
$git push <远程主机名> <本地分支名>:<远程分支名>
用于将本地分支的更新,推送到远程主机