首页 » 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 config –global user.name “xxx”
git config –global user.email “xxx@mail.com”
验证:
ssh git@github.com
就ok了
$ 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是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
********************************
socks5 proxy:
git config –global http.proxy socks5://127.0.0.1:1080
git config –global https.proxy socks5://127.0.0.1:1080
git config –global http.sslVerify false
or
git config –global http.https://github.com.proxy socks5://127.0.0.1:1080
 
ssh:
~/.ssh/config:
Host github.com
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
 
unset proxy:
git config —globalunset http.proxy
git config —globalunset https.proxy
or
git config –global –unset http.https://github.com.proxy
 
check:
git config –global –get http.http://github.com.proxy
git config –global –get https.https://github.com.proxy
git config –global -l
***************************************
 
参考链接:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/

赞 (0)

Comment

please input captcha *