几个概念:
工作区间 Working Directory
暂存区 Stage(index)
本地仓库 Local Repository
远程仓库 Remote Repository
文件状态
未被跟踪的 untracked
未修改 unmodified
修改 modified
暂存 staged
基本命令
开始
1、已存在没有进行版本控制的项目目录
cd /directoryname
git init 生成 .git 子目录,包含初始化git仓库中所有的必须文件
对非空的文件建立跟踪和提交
1 | git add *.c |
2、已有项目
git clone url
建立跟踪
git add filename 开始跟踪
git add 精确的将内容添加到下一次的提交中
可以用来跟踪新的文件
将已跟踪的文件放到暂存区
将合并时有冲突的文件标记为已解决
查看状态
git status [-s][–short] -s/–short 简化git 的输出提示
.gitignore 文件 可以参考 ignore 文件列表
git diff [–cached][–staged]查看暂存前后的变化
git commit -m ‘xxx’ 提交更新
git comiit [-a] -a 表示跳过暂存区
git rm filename 从暂存区移除文件,并从工作区删除
git rm [-f] file -f 删除之前已经修改或者已经放到暂存区的文件
git rm [–catch] file file 可以是文件 / 文件目录 / glob 模式
git mv 移动文件
1 | // 文件重命名 |
回顾历史
git log
git log [-p] [–patch] -2 -p / –patch 补丁信息 -2 表示最近的两次提交
git log [–stat] –stat 每次提交的简略信息
git log [–pretty==online/format/short/full/fuller/graph] 以不同的格式来展示,比如 oneline 会将每个提交放在一行显示 ,format 可以定制记录的显示格式
git reset 撤销
git reset HEAD filname 取消暂存文件
git checkout filename 取消文件的修改
远程仓库的使用
”远程“ 未必表示仓库在网络或者互联网其他唯一,而是只是表示它在别处。远程仓库可以在你的本地主机上。
git remote add
git fetch origin 会抓取上一次抓取(克隆)后所推送的所有工作 git fetch 只会将数据下载到本地而不会自动合并或者修改当前的工作。必须手动合并
如果和远程分支设置了跟踪可以使用 git pull 会从上次抓取(克隆)的服务器上抓取数据并尝试合并到当前所在的分支
git push
git remote show origin 查看远程仓库
git remote rename xx 重命名远程仓库
git remote remove xx 移除远程仓库
git tag 打标签
别名 alias