git简明教程
2014-05-24
本教材只是简单的描述下,git的使用过程和一些常用的命令。
##安装配置
-
从网站下载msysGit(for Windows),安装好。上github注册好账户。
-
cmd命令进入msysGit安装目录的bin文件夹,利用ssh-keygen -t rsa -C 邮箱名命令生成一个id_rsa.pub文件,该文件以ssh-rsa开头,以你刚才所输入的邮箱名称结尾。复制该文件里面的所有内容。
-
打开github网站,登录账户,进入 设置–SSH Keys,标题任意写,然后粘贴上一步复制的内容到Key里面。可以在命令行输入:ssh -T git@github.com验证是否能连接成功。
-
配置用户信息:cmd进入dos;
输入以下命令设置用户名和邮箱,用来每次提交的时候用。
git config –global user.name “xxx”
git config –global user.email “xxx@xx.com”
至此配置完成。
ps:要查看已经做了哪些配置,可使用:*git config --list*命令查看。
新建本地仓库
两种方式,一种从github上clone下来(用 git clone “项目地址”命令),另一种用git init命令在本地文件夹建立仓库。
git init 命令新建本地仓库
1.git init:初始化
2.往文件夹中添加文件。
3.git status[-s]:查看当前仓库状态
4.git add . :将文件存储到暂存区
5.git commit -m “提交时的描述信息”:将暂存区的内容提交到本地仓库,生成一次快照。
6.基本流程是:在仓库中添加或修改文件,,用git add .命令添加到暂存区,然后用 git commit命令提交到仓库做快照;期间可用 git status和git diff命令查看文件状态和具体修改的地方。
7.常用命令:
1) git rm 文件名:删除文件,会删除暂存区的文件,同时删除工作目录的文件
2) git rm –cahced 文件名:仅删除暂存区的文件,不删除工作目录的文件
3) git mv file_from file_to:文件重命名,类似于三个命令的结合(mv file_from file_to;git rm file_from;git add file_to)
4) git log:查看提交历史;常用-p选项展开显示每次提交的内容差异,用-2则仅显示最近的两次更新;最有意思的是format,可以定制要显示的记录格式,这样的输出便于后期编程提取分析。
5) 取消已经暂存的文件:*git reset HEAD
6) 取消对文件的修改:*git checkout –
远程仓库的使用
1.查看远程仓库: git reomte -v
2.添加远程仓库: git remote add [shortname] [url]
3.从远程仓库抓取数据:git fetch [remote-name]
4.推送数据到远程仓库:git push [remote-name] [branch-name] (通常为:git push origin master)
5.查看远程仓库信息:git remote show [remote-name]
6.远程仓库的删除和重命名:git remote rm [remote-name]
ps:Git 命令别名:*git config --global alias.xx 命令名称*;
如 *git config --global alias.st status*
分支
分支相当于一个快照的副本。快照的快照。
1.查看分支:git branch [-v]
2.新建分支:git branch 分支名称
3.切换分支:git checkout 分支名称
4.一键新建并切换分支:git checkout -b 分支名称
5.合并分支:git merge 分支名称
6.当分支合并时,可能会遇到有冲突(conflict)的情况。会有信息提示,解决办法是,用命令git status和git diff查看冲突文件和冲突内容,然后手动进入各个文件,进行修改。然后运行git add .命令存到暂存区,进行提交到本地和远程仓库操作。
7.查看已合并的分支和未合并的分支:git branch [–megred][–no-merged]
8.删除分支:git branch -d 分支名称 或者 git branch -D 分支名称强制删除一个未提交的分支。
9.推送本地分支到远程仓库:git push [远程仓库名称] [分支名称]
若想把远程分支叫做其他名称:git push [远程仓库名称] [本地分支名称:远程分支名称]
10.获取远程分支: git checkout -b [本地分支名称] [远程仓库名称]/[远程分支名称]
11.删除远程分支:git push [远程仓库名称] :[远程分支名称]
ps:有种方便记忆这条命令的方法:记住我们不久前见过的*git push [远程仓库名] [本地分支]:[远程分支]* 语法,如果省略 *[本地分支]*,那就等于是在说“在这里提取空白然后把它变成*[远程分支]*。
小总结
1.一般常用的流程为:
a) 提交到本地:git add . ————> git st(查看文件状态)————>git commit -m "描述信息"
b) 从远程取出数据:git fetch origin ————> git merge origin/master(解决冲突)
或:git pull origin master
c) 上传到远程服务器:git push origin master