Git操作常用指令

建立远程中心仓库
使用 git init –bare 可以创建一个裸仓库,并且这个仓库是可以被正常 clone 和 push 更新的, 裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况。
例如:git init –bare repo.git 这个命令执行后,将在本地创建一个名为 repo.git 的文件夹, 里面包含着 Git 的基本目录

远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。

1.远程存在版本库,直接使用远程库在本地建立版本库
$ git clone <版本库的网址>
比如,克隆jQuery的版本库。

$ git clone https://github.com/jquery/jquery.git
该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。

对于在本地新建的本地分支,如果执行git push origin my_remote_branch_name是不会将my_remote_branch_name设置为新建的本地分支在远程库origin中的upstream分支的,可以执行如下操作,为本地当前分支设置upstream:

git push –set-upstream origin my_remote_branch_name

2.直接建立本地版本库,并推送到远程
git初始化-git init使用

如果在GitHub项目初始化之前,数据已经存在于本地版本库中,可以采取下面所述的方式:
1.git init(在内部会生成.git文件夹)
2.添加文件编写代码 git add . git commit
3.在本地新建了一个git 目录后,往往需要run这样两条命令

  1. git remote add origin (git repository的URL)例如https://github.com/Ray-Young/Test 【指定fetch信息】

origin是仓库名,我们来看git pro上的一段解释:

假设你们团队有个地址为 git.ourcompany.com 的 Git 服务器。如果你从这里克隆,Git 会自动为你将此远程仓库命名为 origin,并下载其中所有的数据,建立一个指向它的master 分支的指针,在本地命名为 origin/master,但你无法在本地更改其数据。

同理,如果已经在github上创建了Repository,Github会自动将这个仓库命名为origin

解析这条命令,git remote add 仓库名 仓库地址

  1. git push -set-upstream origin master 【指定push信息】

这条命令是指定本地端更新到远端的地址,我们只能将相应内容push到origin仓库,但我们能够指定不同的分支(分知名必须与当前分支名相同)

Tips:

  1. 推送到远端分支 git push origin :分知名

  2. git push命令解析:git push 【仓库名】 【本地分知名】:【远端分支名】

//git 强制更新覆盖本地的修改
git fetch –all
git reset –hard origin/master
git pull

你正在开开心心的coding,东写写西改改。突然!一个人对你说道“改个BUG”。如果这个BUG和你正在搞的代码可能相关。怎么办?立马改,为自己埋了一个雷。过会改,处理不当,BUG高于需求。

使用git stash保存当前的操作,如果不这么做,你在切换到别的分支之前就一定要提交已经有的改动。但你当前的操作尚未完成,所以要暂时保存起来。
直接使用git stash list就可以了。

git stash list 操作之后结果可能如下
MyPC:project limi$ git stash list
stash@{0}: WIP on master: 3d72f0b clear file
stash@{1}: WIP on start-test: fabaa87 fix bug

恢复
用git stash pop stash@{num},num 是你要恢复的操作的序号,所以你最好在回复前用git stash list查看一下。
git stash pop命令是恢复stash队列中的stash@{0},然后从记录就删除,就是常规的pop操作。

删除
stash存的不要过多,不然你也不知道哪个是哪个,最好随时清一清。
把所有的记录都清空掉用git stash clear。

git merge与git rebase的区别
http://blog.csdn.net/hudashi/article/details/7664631/

在做app开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。
本地仓库操作:

1:打 tag 标签

git tag -a v1.0 -m “commit version 1.0”

加上 -f 覆盖原有的tag
git tag -f v1.0

2:push 到远程仓库

push所有tag到远程仓库:git push origin –tags (注意tags前是两个短横杠)
push单个tag到远程仓库:git push origin [tagname]
3:删除 tag 便签

git tag -d v1.0

4:查看 tag 标签

git tag

5:切换标签

git checkout v1.0

git运行突然提示
Auto packing the repository in background for optimum performance

查资料,原来是自己本地一些 “悬空对象”太多(git删除分支或者清空stash的时候,这些其实还没有真正删除,成为悬空对象,我们可以使用merge命令可以从中恢复一些文件)

解决:
1.输入命令:git fsck –lost-found,可以看到好多“dangling commit”
2.清空他们:git gc –prune=now,完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值