用git init
在当前目录建立本地新仓库
用git clone <url>
在当前目录克隆一个远端仓库
添加用户名及邮箱:
编辑.git/config
[user]
name =
email =
你的文件可能存在于不同的层次:
文件可能有三种不同状态:
使用git add/rm <file>
将增加/修改/删除的文件暂存
使用git commit -m "message"
提交已经暂存的更改
git status
:显示当前所处分支与修改(包括暂存与未暂存)
git checkout HEAD -- <file>
使某个文件恢复到上次提交时的状态
git checkout -- <file>
使某个文件恢复到上次暂存时的状态(Updated Lucups@V2EX)
git reset HEAD <file>
使某个修改由已暂存变为未暂存
将本地仓库重置成与远端一样:git fetch origin
git reset --hard origin/master
git log
:查看以往的提交以及提交时的留言
git log 1 -p
:查看最后一次提交及其改动
git log --author=<name>
:仅显示某人的的提交
git log --pretty=oneline
:一行显示一个提交
git log --graph --oneline --decorate --all
:以树状图显示提交历史
git log --name-status
:仅显示哪些文件被改动
当你需要建立新分支时,可能需要一个干净的工作目录,但是一时半会儿没法提交时,暂存是你的好选择。
git stash
:暂存当前的暂存区域
git stash list
:列出已有的暂存
git stash pop
:将暂存中的改变重新释放出来
git branch <branchname>
来创建新分支
新的特性需要开发,有Bug需要修补,不同思路做实验。。。
Git中只有一个分支是活跃的也就是HEAD所指向的那个。
使用git checkout <branch>
来切换分支,HEAD也随之改变
git branch -v
:列出所有分支以及当前活跃的分支
git merge <branchname>
:将某分支合并到当前分支
git branch -d <branchname>
:删除某分支
git push origin <branch>
:推送本地分支
git fetch <branch>
:获取远端分支但不进行合并
合并前可以通过git diff <source_branch> <target_branch>
检查更改
git pull
:获取远端分支并尝试合并
git remote add shortname <url>
发布新版本时,打标签是个不错的选择:git tag <tagname> <hash>
gitk
:内置的图形界面
git config color.ui true
:使命令行输出变成彩色
git add -i
:不用一个个输入需要暂存的文件的文件名,进行交互式选择
客户端:
拓展阅读: