git 命令
-
推荐款 mac git工具, sourcetree ( Intellij 集成的git 也不错, 能具体查看某个函数的历史记录)
-
git clone --depth=1 只拉取最后一次commit .不要历史记录 。 体积很小,即可解决文章开头提到的项目过大导致Timeout的问题,他只会把默认分支clone下来,其他远程分支并不在本地
拉取其他分支
$ git clone --depth 1 https://github.com/dogescript/xxxxxxx.git
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name
-
git pull --unshallow 恢复原有的记录
-
--depth=100:指定拉取的深度为 100 个提交记录(可以根据需要调整)。
-
git fetch --depth=10 再多拉取一点
-
有时候sourcetree cherry pick后, 有问题,又没有提交上去; commit又没有数据 ; 运行下面这个,把上次cherry pick 的出错干掉
git cherry-pick —abort -
git branch 查看本地分支
-
git branch -r 查看远程所有分支
-
git branch -a 查看本地和远程所有分支
-
git branch -d 删除本地分支
-
git branch -d -r 删除远程分支
-
git branch -D name 强制删除分支
-
git checkout 切换分支名 . 如果远程同名会拉下来切换过去。
-
git checkout -b newbranchName . 如果同名后,可以git branch --set-upstream-to=origin/cdn 绑定上
-
git branch -r 查看远程分支
-
git merge branchName . 把branchName合并到当前分支
-
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
-
git checkout filename 只恢复某一个文件。放弃修改。配合 git status看
-
git checkout bde896be07053 只回到那个时间节点。可以git log 查看。 前6位就好
-
git reset --hard origin/master 错误提交后,reset掉,这样不会有历史.但提交的东西也没了
git reset --hard master 强制恢复到本地master最后一次提交
git reset --hard origin/master 强制恢复到远程的master -
下面两条命令来删除远程分支
git branch -r -d origin/branch-name 特殊的加双引号 -
时间长了的git, 会有很多重复东西
运行;git gc (如果卡住出错了,rm -rf .git/objects/pack/tmp_pack_*) ,期间出错多重复几次
- 断点续传
git clone 不行
用git init
git fetch git://…..git
即使断掉了,可以继续
git fetch git://…..git
等到fetch完会出现以下字样
From git://….
*branch HEAD -> FETCH_HEAD
意思是把最新的数据fetch到了本地的FETCH_HEAD分支上去了
然后用git checkout FETCH_HEAD
初始化项目
git init
这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。以后,所以的文件变化信息都会保存到这个目录下,而不像CVS那样,会在每个目录和子目录下都创建一个讨厌的CVS目录。
在.git目录下有一个config文件, 需要我们添加一下个人信息后才能使用。否则我们不能对其中添加和修改任何文件。