首页 » Network » git » 正文

git常用操作整理

git init—目录变仓库

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

git commit -m “comment”—提交文件到仓库

git status—查看仓库当前状态

git diff—查看修改

git log <–pretty=oneline>—查看历史记录

HEAD:当前版本 HEAD^:上一个版本 HEAD^^:上上一个版本 HEAD~100:前100个的版本

git reset –head HEAD^—回退到上一个版本

git reset –hard 前几位版本的sh1值—回到未来的某个版本

git reflog—查看记录的每一次命令

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

git diff HEAD — xxx.txt—查看工作区和版本库里面最新版本的区别

git checkout — file—文件在工作区的修改全部撤销

git rm—从版本库删除文件

git checkout — test.txt—把误删的文件从版本库中恢复出来

==============

登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

点“Add Key”,你就应该看到已经添加的Key:

$ git remote add origin git@github.com:michaelliao/learngit.git

请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

git push -u origin master—本地库的所有内容推送到远程库(github)

git push origin master—把本地master分支的最新修改推送至github

git clone xxx.git—克隆一个本地库

支持ssh和https,建议用ssh更快

==================================

git checkout -b dev—创建并切换到dev分支

git branch—查看当前分支

git merge dev—把dev分支的工作成果合并到master分支

git branch -d dev—删除dev分支

git log –graph—查看分支合并图

git merge –no-ff -m “merge with no-ff” dev—禁用快速模式合并

=====================================

分支管理策略:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

开发一个新feature,最好新建一个分支;

==================================

bug分支:

git stash—储藏工作现场

git stash list—查看工作现场

git stash apply—恢复工作现场

git stash drop—删除stash内容

git stash pop—恢复工作现场并删除stash

==============

feature分支:

git branch -D xxx.py—强行删除未合并过的分支

==================

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

git push origin master—该分支上的所有本地提交推送到远程库

****************

master分支是主分支,因此要时刻与远程同步;

dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

****************

git push origin branch-name—本地推送分支

git checkout -b branch-name origin/branch-name—本地创建和远程分支对应的分支

git branch –set-upstream branch-name origin/branch-name—建立本地分支和远程分支的关联

多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

****************************

tag:

git tag v1.0—打标签

git tag—查看所有标签

git tag v0.9 id—给以前的提交打标签

git show v0.9—查看标签信息

git tag -d v0.9—删除标签

git push origin v1.0—推送标签到远程

git push origin –tags—推送所有标签到远程

git push origin :refs/tags/v1.0—删除远程库的标签

*********************************

一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改。

如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。

如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

********************************

配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

 

参考链接:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

赞 (0)

Comment