git仓库
如果要对某个项目开始使用Git管理,只需要转到此目录下,使用git init
从现有的仓库克隆
格式:git clone [url]
git协议:git clone git://..../myResp.git 这会在当前目录下创建一个myResp目录
git clone git://..../myResp.git MyGit 这会在当前目录下创建一个自己目录MyGit
ssh协议:git clone
[email protected]/.../myResp.git
git clone
[email protected]/.../myResp.git myGit
git工作前的配置:这里只是列出一些简单的配置,每个人都有自己的喜好,具体如何玩得更溜,可以搜搜。
配置命令:
author:
git config --global user.name david
git config --global user.email
[email protected]
alias:
git config --global alias.cp cherry-pick
以下为我用git config -l列出的:
color.ui=true
alias.st=status -s
alias.df=diff
alias.ck=checkout
alias.br=branch -av
alias.cm=commit -m
alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit
alias.cp=cherry-pick
alias.la=log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --all --abbrev-commit
alias.lo=log --graph --pretty=format:'%C(yellow)%h%Creset %C(bold blue)%an%Creset %C(green)%s' --abbrev-commit
alias.lastlog=log -1 HEAD
alias.unstage=reset HEAD
概念: 以下几个概念一定要清楚 ,因为后面我们会经常用到这些概念
工作区:本地的代码放置的地方
暂存区:git add 后的地方
版本库:git commit后的地方
一般的提交流程:很多人在提交的时候脑子里根本没有想为什么我要这么做,下面我会说明每一步到底是怎么回事。
上面中,我自己创建了一个文件david。然后用git status ./ 查看当前目录下所有子目录的状态,当然如果你喜欢可以在git status后面加上路径,这样或许更方便点。此时,文件david在工作区,用status 命令看的时候 ,文件状态显示的是untracked files(git没有跟踪的文件),它会提示你用git add这个命令,是不是感觉有点智能。
接下来我们用git add david命令,把文件加入到暂存区。 再用到status命令的时候 ,会看到,changes to be commited,提示我们使用git commit命令来提交文件。 再往下看,又提示我们用git reset HEAD <file> to unstage(退出暂存区),可以看到git status查看文件的状态的时候 ,每一步都会提示你如何前进 ,如何后退 ,在后面会有更多的体会的。
我们按照提示用git commit -m "" 命令,这个时候会出现一些信息,代表文件被跟踪,那么如何确定呢,再用一次git status ./ ,可以看到david 文件没有任何状态。
现在我们通过vim 修改david,再查看状态就发现文件前面出面modified,代表已经被修改了,这个时候我们用git df(diff) 看到了差异所在。 再用git add 提交到暂存区,不要再问我上面的几行是什么意思~,这个时候单纯用git diff是不能查看到差异的,可以选择用git diff --cache。最后git commit。
从上面两步,我们可以看到基本的git 使用流程,在git commit后可以随时用git log看到提交的记录。后面的内容将会讲到我们在提交过程中所遇到的问题,以及如何处理这些问题。