您的位置:首页 > 其它

Git命令揭秘

2015-10-02 19:34 369 查看
以linuxi下为例,windows和Mac OS与此类似。这里不是分布式版本控制系统git的教程只做个人记录和查找,如果需要教程请移步git教程。


1.安装git

sudo apt-get install git

安装完成后需要进一步配置:

git config –global user.name “YOUR USERNAME”

git config –global user.email “××××@example.com”

2.创建版本库并提交

新建目录:mkdirlearngitmkdir learngit
cd learngit

$pwd

**/learngit

创建管理仓库:

git init——把这个目录变成Git可以管理的仓库

git add readme.txt——把文件readme.txt添加到仓库

git commit -m “wrote a readme file”——把上述文件提交到仓库,并备注“wrote a readme file”,备注尽量要写,方便自己和团队

3.状态查看

git status——成功提交readme.txt后可以查看仓库的当前状态

git diff readme.txt——查看readme.txt的修改内容然后可通过git add 和git commit -m提交到仓库

4.版本回退

git log——显示从最近到最远的提交日志,如图我的记录



git log –pretty=oneline ——以行显示提交日志,或者可视化工具可以很直观的看到Git历史



git reset –hard HEAD^——HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,HEAD~100表示往上100个版本

git reset –hard 74249——继续往上找到ID为74249*的版本,于是就回到这个版本,版本号没必要写全,前几位就可以了,Git会自动去找



git checkout –readme.txt——丢弃工作区的修改,这里有两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态,也就是清除工作区的修改而不撤销暂存区的修改。(修改(工作区)—git add—修改(暂存区)—git commit—分支(master))

git rm test.txt——前提是已经在磁盘目录删除test.txt,此时如果确实要从版本库中删除则执行此命令然后git commit,如果确实删错了,git checkout –test.txt即可把误删除的文件恢复。

5.远程仓库

git remote add origin https://github.com/wandouqiang/learngit ——远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

git push -u origin master——把当前分支推送到远程,由于远程库是空的,第一次推送时加-u。推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。从现在起,只要本地作了提交,就可以通过命令git push origin master把本地master分支的最新修改推送至GitHub

git remote rm origin ——删除已经存在的origin,如果提示fatal: 远程 origin 已经存在则需要执行此命令

git clone https://github.com/wandouqiang/learngit.git ——将远程库克隆到本地库

6.分支管理

git branch dev —— 创建dev分支,

git checkout dev —— 切换到dev分支

git checkout -b dev —— 创建dev分支,并切换到dev分支,相当于上面两条指令

git branch—— 查看当前分支,输出的当前分支前面会有一个*号。此时可以在dev分支上做修改并提交

git checkout master —— 切换到master分支,master是主分支,保持在切换到dev分支之前的状态

git merge dev —— 将dev分支上的成果合并到master上

git branch -d dev —— 合并完成后删除dev分支,-D是强行删除

git log –graph –pretty=oneline –abbrev —— 查看分支情况。如果分支dev有更改而同时master也有更改,但两个分支没有合并,此时就会有冲突。此时修改主分支然后删除掉feature分支



git merge –no-ff -m “merge with no-ff” dev —— 合并分支并禁用Fast forward模式,这样分支可以看到历史分支信息

git stash —— 把当前的工作现场隐藏起来,等以后再回复开始工作。此时可以在分支上创建临时分支。此为bug分支,bug分支完成后切换到master分支完成合并,删除bug分支

git stash list —— 查看现场工作区

git stash apply —— 将stash内容回复

git stash drop —— 删除前面保存的stash

git stash pop —— 恢复的同时把stash的内容删除,完成上面两步的内容

git stash apply stash@{0} —— 可以多次stash,恢复的时候用git stash list 查看然后用该命令恢复制定的stash

git push origin master —— 推送分支

git remote -v —— 查看远程库的信息

7.标签管理

git tag —— 切换到需要打标签的分支,打标签写名字

git tag ID —— 通过log查看历史命令找到ID,在历史commit ID上打标签

git tag —— 查看标签

git show —— 查看标签信息

git tag -d ——删除标签

git push origin —— 推送标签到远程

git push origin –tags —— 推送全部标签

8.搭建git服务器

另行博客

参考文献:廖雪峰的官网 这里写链接内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: