本文共 2918 字,大约阅读时间需要 9 分钟。
1.版本库
版本库就是所谓的版本仓库(repository简称repo),本地创建一个空的git库:
git init path
将远端项目拷贝到本地目录path:
git clone url path
2.name和email的设置
$git config --global user.name name$git config --global user.email xxx@xxx $git config --global color.ui true(让git显示颜色,会让命令输出看起来更醒目)
默认编辑器:git config --global core.editor vim
差异分析工具 :git config --global core.editor vimdiff 查看某个环境变量的设定:git config user.name 3.工作流程
add(working dir)==>commmit(index) ==>HEAD==>push(remote server) index缓存区:缓存区域临时保存你的改动(只要文件add到缓存区中之后,在工作目录下面做的改动都可以捕捉到)
将代码添加到缓存区: git add <filename> | git add . 提交改动: git commit -m "comment" 改动提交到了head,但是还没有放到远端仓库,应该要push才可以,git的提交注释必须不能为空,否则就会提交失败。 推送改动(改动现在已经在本地仓库的HEAD中,将改动提交到远端仓库): git push origin master 没有clone仓库将仓库连接到远程服务器,使用如下命令添加: git remote add origin <server> 将分支推送到远端仓库:git push origin <branch> git push origin <branch>:refs/for/master 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下: $git push origin test:master // 提交本地test分支作为远程的master分支 $git push origin test:test //
提交本地test分支作为远程的test分支 创建新分支并立即切换到新分支:git checkout -b [name] 建立分支:git branch <branch_name>
切换分支:git checkout <branch_name>
创建+切换分支:git checkout -b <branch_name>
删除分支:git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项 查看状态:git status,有几种状态的文件:
Changed not staged for commit:git add之前,在工作区的文件(modified),git add添加;git checkout 放弃在工作目录的修改。
Untracked files:没有被追踪的新文件(new file),也就是没有被添加到工作区的文件,使用git add进行添加。
Changes to be committd:需要被提交的文件,
git reset HEAD file来撤销。
git add only modified changes and ignore untracked files:
git ls-files --modified | xargs git add
"git add ."和"git add *"的区别 :前者是将changed but not updated和Untracked files文件加入到working dir;后者是将所有文件(包括.gitignore忽略的文件)加入到working dir里面去。 >git log --pretty=oneline:仅一行显示log
>git log --graph:命令可以看到分支合并图
用 HEAD 表示当前版本,也就是最新的提交 3628164...882e1e0 (注意我的提交ID和你的肯定不一样),上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100 >git reset --hard commit_id(回到任意的版本状态,但是前提似乎是你要记住版本相应的commit_id) >git reset HEAD file:取消已经添加到暂存区的文件file(即经过git add file操作的文件)
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file(即在工作区修改的文件想撤销修改)。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
切换到tag:
>git checktout -b <branch_name> <tag_name> svn命令与git命令主要对比:
SVN | GIT |
svn admin create | git init |
svn checkout | git clone |
svn update | git pull |
svn add | git add |
svn commit | git add,git commit |
svn status | git status |
svn switch <branck> | git checkout <branch> |
svn merge <branch> | git merge <branch> |
svn revert <file> | git checkout <file> |
Author:忆之独秀
Email:leaguenew@qq.com
注明出处:
转载地址:http://kvnpf.baihongyu.com/