(注:本文转自Git入门教程)
创建新仓库:
用git init
在当前目录建立本地新仓库
用git clone url
在当前目录克隆一个远端仓库
添加用户名及邮箱有两种方式
方式一:编辑.git/config
[user]
name =
email =
方式二:使用命令行
git config --global user.name "xxxxxx"
git config --global user.email "xxxxxxx"
(备注:--global表示添加到全局配置中,全局配置在~/.gitconfig中, 如果不加--global,就只会修改当前目录下.git/config)
在本地仓库上工作:
你的文件可能存在于不同的层次:
- 工作目录
- 暂存区域
- 本地仓库
工作目录:
文件可能有三种不同状态:
- 未被追踪
- 已追踪未修改
- 已追踪已修改
暂存区域(包含了在下次将要被提交的修改):
使用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需要修补,不同思路做实验。。。
HEAD:
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>
同步远端的分支list
(例如某分支在远端被删除了)git fetch -p
orgit remote prune origin
打标签:
发布新版本时,打标签是个不错的选择:git tag <tagname> <hash>
GIT PUSH/PULL时总需要输入用户名密码的解决方案
git操作时只要输入一次用户名与密码,以后就不用输入了
在 mac系统
git config --global credential.helper osxkeychain
在其他系统
git config --global credential.helper store
小提示:
gitk
:内置的图形界面
git config color.ui true
:使命令行输出变成彩色
git add -i
:不用一个个输入需要暂存的文件的文件名,进行交互式选择
客户端与拓展阅读:
客户端:
拓展阅读: