学的东西长时间不用还是会忘,趁今天周末,记录一下Git基本操作以备以后查询。如有错误,还望大家不吝指出。
Github主要是围绕 Work Directory ,Stage 和 Repository 三个部分来存储代码,Work Directory 是你本地文件夹中的代码,Repository 是你提交的各个版本代码仓库,Stage 相当于在你提交到仓库之前的缓存。远程分支相当于存在其他服务器中的代码,我们一般指的是Github。
基本操作
- 在当前文件夹下启用git:git init
- 将代码提交到Stage:git add . or git add filename
- 将代码提交到Repository:git commit -m “代码描述” or git commit 之后在vim窗口编辑
- 将代码由Stage恢复到工作目录:git checkout – filename
- 将仓库中的代码恢复到暂存区域:git reset HEAD (HEAD指当前版本,可以用版本哈希值以及HEAD~代替);如果想把代码恢复到暂存以及工作区:git reset --hard HEAD;如果只是撤销commit,则 git reset --soft HEAD
- 查看状态:git status
- 比较版本或不同存贮区域的代码:git diff (比较工作区和HEAD), git diff 快照1 快照2 (不同版本间),git diff --cached HEAD (暂存以及快照)
- 查看各版本信息:git log,个人比较常用的 git log --decorate --oneline --graph --all
- 如果想要向已提交的版本中添加特性又不想reset后重复提交:git commit --amend or git commit --amend --no-edit
- 删除某跟踪文件:git rm filename, git rm -f filename, git rm --cached filename
- 重命名某跟踪文件:git mv oldname newname
- 如果想找一些之前删除的快照的哈希值:git reflog
分支
- 新建分支:git branch branchname
- 跳转分支:git checkout branchname
- 新建并跳转分支:git checkout -b branchname
- 删除分支:git branch -d branchname
- 合并分支:git merge branchname (将分支合并到HEAD)
远程分支(Github)
- 在你的Github账户中新建好Repository后添加远程分支:git remote add origin https://…
- 删除远程分支:git remote rm origin
- 推送分支:git push origin branchname
- 强行推送:git push --force origin branchname
- 拉取分支:git pull origin branchname
注意:以上origin只是和master类似的默认名称,在clone时 git clone -o name 修改默认名称。