Git Basics
切始化一个Git仓库
git init
克隆远程库:
git clone url
添加文件到Gt仓库:
git add
git commit -m
将当前staged修改合并到最近一次的 commit中
git commit -m --amend
查看仓库状态:
git status
git diff
比较工作区和暂存区的修改:
git diff
比较工作区和上一次commit后的修改
git diff HEAD
比较暂存区和上一次commit后的修改
git diff --cached
git log
查看提交日志;
git log
限制log的显示数量
git log -
每行显示一条commit
git log --oneline
git log --pretty=oneline
按提交者名字搜索并显示commit
git log --author=""
按指定内容搜索并显示commit
git log --grep=""
仅显示包含指定文件修改的commit
git log --
使用--graph参数显示图形化的branch信息
git log --graph
git log --graph --pretty=oneline --abbrev-commit
查看历史命令
git reflog
撤销修改和版本回退
把文件readme.txt在工作区的修改全部撤销;
git checkout -- readme.txt
有两种情况:
1、readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
2、readme.txt已经添加到暂存区后,又做了修改,现在,撤销修改就回到添加到暂存区后的状态
将从暂存区移除,但保持工作区不变。此操作不会修改工作区的任何文件
git reset
移除所有暂存区的修改,并强制删除所有工作区的修改
git reset --hard
将当前分支回滚到指定,清除 暂存区的修改,但保持工作区状态不变
git reset
将当前分支回滚到指定,清除 暂存区的修改,并强制删除所有工作区的 修改
git reset --hard
回退到上一个版本:
git reset --hard HEAD^
把暂存区的修改撤销,重新放回工作区:
git reset HEAD readme. txt
对指定创建一个undo的 commit,并应用到当前分支
git revert
HEAD:当前版本
HEAD^:上一个版本
HEAD^^:上上一个版本
HEAD~100:往上100个版本
远程库
把本地仓库与远程仓库关联:
git remote add origin git@github.com:username/learngit.git
首次:git push -u origin master
非首次:git push origin mastef
推送dev份支:
git push origin dev
拉取远程分支:
git pull
从指定抓取所有分支的commit 并立刻合并到本地repo
git pull
从指定抓取指定的所 有commit到本地repo。去掉将 抓取远程所有分支的修改
git fetch
查看远程库信息
git remote -v
删除远程库, 如删除origin
git remote rm origin
查看远程库的信息:
git remote
qit remote -v
分支
创建并切换到dev分支:
git checkout -b dev
相当于以下两条命令:
git branch dev
git checkout dev
创建分支:
git branch 或
git switch
切换到master分支;
git checkout master或
git switch -c master
查看当前分支:
git branch
现在在master分支,把dev分支的内容合并到master分支
git merge dev
非fast forward合并
git merge --no-ff -m "merge with no-ff dev
删除dev分支:
git branch -d dey
创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
设置本地dev分支与远程origin/dev分束的链接:
git branch --set-upstream-to=origin/dev dev
标签
在最新commit上打标签:
git tag v1.0
在某个commit上打标签
git tag v1.0
创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released"
查看所有标签:
git tag
查看某个标签信息:
git show v1.0
删除标签:
git tag -d vO.1
推送某个标签到远程
git push origin
一次性推送全部尚未推送到远程的本地标签;
git push origin --tags
删除远程标签:
先从本地删除:git tag -d v0.9
再从远程删除:git push origin:refs/tags/v0.9
把当前工作现场保存起来:
git stash
查看保存的工作现场:
git stash list
恢复工作现场,stash内容不删除:
git stash apply
恢复工作现场,stash内容删除:
git stash drop
复制一个特定的提交到当前分支:
git cherry-pick
把分叉的提交历史"整理"成一条直线:
git rebase
基于对当前分支进行rebase。 可以是commit、分支名称、tag或 相对于HEAD的commit
git rebase
Git config
配置当前用户名,使用--global参数将针对 当前系统登录用户生效
git config --global user.name
配置当前用户Email
git config --global user.email
打开当前用户的git全局配置并编辑
git config --global --edit
工作区和暂存区
把文件往Git版本库里添加时,分两步执行:
1、用git add把文件修改添加到暂存区
2、git commit把暂存区的内容提交到分支上
其它
忽略某些文件:.gitignore
git图形界面工具:SourceTree