git学习

git是一个开源的分布式控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

详细学习可前往廖雪峰的官方网站的Git教程。

以下主要记录git使用中常用的一些操作:

版本库

1. 创建版本库

git init: 将当前目录变成Git可以管理的目录,即版本库(又名仓库,repository)
执行完这个命令后,当前目录下会生成一个名为.git的隐藏目录,这个目录是Git用来跟踪管理版本库的。

2. 添加文件进入版本库(本地库)

git add filename: 将工作区(work directory)的文件或文件修改添加到暂存区(stage),可多次使用以添加多个文件
git add directory: 添加目录至暂存区
git add -A: 添加所有文件及目录至暂存区
git commit: 将暂存区(stage)的文件修改最终提交到分支(master)
git status: 查看当前仓库状态(是否还有修改过的文件准备提交)
git diff file: 查看文件修改,工作区(work dict)和暂存区(stage)的比较
git diff --cached file: 查看文件修改,暂存区(stage)和分支(master)的比较
git rm directory -r: 将指定目录及子目录移除出暂存区
git rm --cached filename -r: 将指定文件移除出暂存区
为了避免上传不想上传的文件,记得要添加忽略配置文件.gitignore
[图片上传失败...(image-fd6441-1514299952238)]

版本穿梭

git log: 查看版本库历史,每次改动提交为一个版本,commit后的一串数字字母是每个版本的id,可用于版本穿梭
git log --pretty=oneline: 将每个版本信息缩减到一行
git reset --hard HEAD^: 穿梭到上一个版本,HEAD代表上一个版本,同理HEAD^为上上个版本,HEAD~n为往上n个版本
git reset --hard commit_id: 穿梭到指定commit_id的版本
git reflog: 查看每一次命令操作,可查询到之前操作过的未来版本的commit_id用以穿梭回原版本
git checkout -- file: 丢弃工作区的所有修改
git reset HEAD file: 丢弃为提交的暂存区的修改
git rm file: 删除文件,可用git checkout -- file命令恢复

远程仓库

远程仓库包括Github,码云,Bitbucket等,这里以Github为例,用ssh或https关联本地库(SSH协议速度要快于https协议)
git remote (-v): 查看远程配置
git remote add origin git@server-name:path/repo-name.git: 用ssh方式关联远程仓库(origin是远程库的名字,Git默认)
git remote remove origin: 删除远程地址
git branch origin -u: 上传新分支至远程
git branch --track --set-upstream-to=orgin/name name: 将本地分支与远程分支建立关联
git push -u origin master: 第一次推送master分支的所有内容到远程仓库
git push origin master: 推送最新修改到远程仓库
git clone git@server-name:path/repo-name.git: 从远程克隆仓库到本地

分支管理

git branch (-v/-vv): 查看分支(加上括号里的参数可以看到分支详情)
git branch name: 基于当前分支创建分支
git checkout name: 切换分支
git checkout -b name: 创建+切换分支
git merge name: 合并某分支到当前分支
git merge --no-ff -m "……" name: 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
git branch -d name: 删除分支
git log --graph: 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit: 查看分支合并图,每条分支内容简略显示
git stash: 储藏未完成的工作现场,以便临时去处理其他工作
git stash list: 查看储藏的未完成工作现场列表
git stash apply: 恢复未完成的工作现场,但是stash内容不删除
git stash drop: 删除stash内容
git stash pop: 以上两步合并
git branch -D name: 强行丢弃一个为合并的分支

标签管理

git tag tagname: 打标签
git tag tagname commit_id: 在指定位置打标签
git tag -a tagname -m "……" commit_id: 创建带有说明的标签,-a指定标签名,-m指定说明文字
git tag: 查看所有标签
git show tagname: 查看标签信息
git push origin tagname: 推送一个本地标签
git push origin --tags: 推送全部未推送过的本地标签
git tag -d tagname: 删除一个本地标签
git push origin :refs/tags/tagname: 删除一个远程标签

一些常用命令

  1. mkdir: 创建一个文件目录(文件夹),例如: mkdir test就是创建一个名为test的文件夹
  2. pwd: 显示当前所在目录
  3. cd: 跳转到指定目录,例如: cd /d/test就是将目录切换到D盘下的test文件夹
  4. touch: 创建文件, 例如: touch readme.md就是创建一个md格式的文件
  5. cat: 查看文件内容,例如: cat readme.md就是查看readme.md这个文件的内容
  6. subl: 用sublime text打开文件,例如: subl readme.md就是用sublime text打开readme.md这个文件(注意:要将sublime text添加到系统环境变量才能使用这个命令)类似vi是用vim打开文件
  7. ls-ah: 显示隐藏文件
  8. ls: 显示当前目录下有哪些文件

你可能感兴趣的:(git学习)