原文:https://blog.csdn.net/xyznol/article/details/51261692 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,完成。

Continue reading

原文:https://www.cnblogs.com/kevingrace/p/5896706.html 使用下面的关系区别这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git merge和git rebase的区别。 假设有3次提交A,B,C。 在远程分支origin的基础上创建一个名为”mywork”的分支并提交了,同时有其他人在”origin”上做了一些修改并提交了。 其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法: git merge 用git pull命令把”origin”分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。 git rebase 创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。 在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase –continue,这样git会继续apply余下的补丁。 在任何时候,都可以用git rebase –abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。

Continue reading

以下两步缺一不可 步骤一 从GitHub下载文件一直非常慢,查看下载链接发现最终被指向了Amazon的服务器,下载地址是http://github-cloud.s3.amazonaws.com/,从国内访问Amazon非常慢,所以总是下载失败,解决方法时更改host文件,使该域名指向香港的服务器: 更改hosts文件: Windows 更改C:\Windows\System32\drivers\etc\hosts文件,在文件中追加219.76.4.4 github-cloud.s3.amazonaws.com, 将域名指向该IP即可 Mac 执行 sudo vi /etc/hosts 追加 219.76.4.4 github-cloud.s3.amazonaws.com 最后执行ipconfig /flushdns命令,刷新 DNS 缓存。 步骤二 https://www.ipaddress.com/ 使用 IP Lookup 工具获得下面这两个github域名的ip地址,该网站可能需要梯子,输入上述域名后,分别获得github.com和github.global.ssl.fastly.net对应的ip,比如 192.30.xx.xx 和 151.101.xx.xx 。准备工作做完之后,打开的hosts文件中添加如下格式,IP修改为自己查询到的IP: 192.30.xx.xx github.com 151.101.xx.xx github.global.ssl.fastly.net 最后执行ipconfig /flushdns命令,刷新 DNS 缓存。修改后的下载速度能达到 2MB/S 以上。 参考自:https://blog.csdn.net/qing666888/article/details/79123742

Continue reading

原文:https://blog.csdn.net/shuilengqingqiu/article/details/77945658 git提交代码时出现错误:error : unpack failed : error Missing commit XXX,XXX代表提交的版本号。 原因:本地索引出错。 解决方法: git gc git pull –rebase(执行之前要先把本地的修改stash 或者commit。过程中遇到冲突需要先解决冲突,再git add .) git push

Continue reading

概述 Reset Type有三种类型:Soft、Mixed、Hard。 理解Reset Type之前,先解释下以下术语: HEAD 这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交 Index Index也被称为staging area,是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit Working Directory 代表你正在工作的那个文件集,又称作Working Tree。 三个Reset级别的意思分别是: Soft # 还原 HEAD Mixed # 还原 HEAD、Index # 默认参数 Hard # 还原 HEAD、Index、Working Directory 应用 如果本地有commit,但是没有push,此时想把这个commit 回退掉,则:右键需要回退的SHA-1 -》 Reset “master” to this。 然后和弹出菜单: 选择合适的Reset Type,点击OK。 注意事项: 根据需要选择Reset Type: 若本地无修改,那么就选择 Soft; 若本地有修改未commit,那么就选择 Mixed; 若本地有修改且已commit,那么就选择 Hard; 参考自:git reset soft,hard,mixed之区别深解 https://www.cnblogs.com/kidsitcn/p/4513297.html 生命的价值不在于时间的长短,而在于你如何利用它。

Continue reading

区别: HEAD: The current ref that you’re looking at. In most cases it’s probably refs/heads/master FETCH_HEAD: The SHAs of branch/remote heads that were updated during the last git fetch ORIG_HEAD: When doing a merge, this is the SHA of the branch you’re merging into. MERGE_HEAD: When doing a merge, this is the SHA of the branch you’re merging from. CHERRY_PICK_HEAD: When doing a cherry-pick, this is the SHA of the commit which you are cherry-picking.

Continue reading

相关参考: https://www.jianshu.com/p/e78b28081a44 https://stackoverflow.com/questions/9237348/what-does-fetch-head-in-git-mean https://ruby-china.org/topics/4768 git clone git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合。在clone完成之后,Git 会自动为你将此远程仓库命名为origin(origin只相当于一个别名,运行git remote –v或者查看.git/config可以看到origin的含义),并下载其中所有的数据,建立一个指向它的master 分支的指针,我们用(远程仓库名)/(分支名) 这样的形式表示远程分支,所以origin/master指向的是一个remote branch(从那个branch我们clone数据到本地),但你无法在本地更改其数据。同时,Git 会建立一个属于你自己的本地master 分支,它指向的是你刚刚从remote server传到你本地的副本。随着你不断的改动文件,git add, git commit,master的指向会自动移动,你也可以通过merge(fast forward)来移动master的指向。 git clone + 远程仓库项目网址 克隆远程仓库项目到本地仓库,也就是俗称的拉代码,本地仓库生成的项目与远程仓库的项目结构一致。git clone + 远程仓库项目网址 + 本地仓库项目目录:克隆远程仓库项目到本地仓库,本地仓库生成的项目放在第二个参数【本地仓库项目目录】中 git fetch 真正理解 git fetch, git pull,要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge 、远程repo, branch 、 commit-id 以及 FETCH_HEAD。 git remote 首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称。 本地的repo仓库要与远程的repo配合完成版本对应必须要有 git remote子命令,通过git remote add来添加当前本地长度的远程repo, 有了这个动作本地的repo就知道了当遇到git push 的时候应该往哪里提交代码。 git branch 其次,git天生就是为了多版本分支管理而创造的,因此分支一说,不得不提, 分支就相当于是为了单独记录软件的某一个发布版本而存在的,既然git是分布式的,便有了本地分支和远程分支一说,git branch 可以查看本地分支, git branch -r 可以用来查看远程分支。 本地分支和远程分支在git push 的时候可以随意指定,交错对应,只要不出现版本从图即可。

Continue reading

检出 (简写:svn co) svn checkout url --username=*** --password=*** path //第一次check out svn checkout url //不是第一次check out 添加 svn add file //添加指定文件 svn add *.cpp //添加当前目录下的所有的cpp文件 svn add * --no-ignore 文件夹 //添加指定文件夹下的所有文件(包括忽略的文件类型.a、.pdb等) 提交(简写:svn ci) svn commit -m "LogMessage" 更新(简写:svn up) svn update . //更新当前目录 svn update test.cpp //更新指定文件 svn update -r 200 test.cpp //更新指定文件到指定版本 回退 svn revert . --depth=infinity //整个目录回退 回退到旧版本并提交 svn update //回退前要保证版本更新到最新,假设最新版本为150,准备回退到140 svn merge -r 150:140 .

Continue reading

在安装完以后的配置选项中,SSH选择OpenSSH: 如果选择PuTTY,则每次更新或提交时,都需要输入密码。 除了在安装配置页面设置,也可以在安装完毕以后,右键 -》 TortoiseGit -》 Settings -》Network -》 SSH -》 修改为:"ssh.exe" 或者 "Git安装目录\usr\bin\ssh.exe" 生成公钥 命令(ssh-keygen.exe 位于 Gi安装目录\usr\bin 目录下) ssh-keygen -t rsa -C "mysshkey" 执行后敲三次回车,即可生成SSH公钥和私钥。 我感到难过,不是因为你欺骗了我,而是因为我再也不能相信你了。----尼采《天才的激情与感悟》

Continue reading

1,先在本地生成ssh的公钥,方法如下: https://gist.github.com/yisibl/8019693 2,在github自己的账号后台中添加上面生成的key,将id_rsa.pub中的所有内容全部copy过来即可。 添加key的页面:https://github.com/settings/keys 3,将https替换为ssh: git remote set-url origin git@github.com:USERNAME/REPOSITORY.git 4,将当前客户端的ssh链接添加到github信任列表 ssh -T git@github.com 如果不执行这个步骤,会push时会出现错误提示: ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository 另外,执行此步骤时必须关掉爬墙工具(你懂的),否则会提示链接超时。

Continue reading

Author's picture

Neil Wang

久长唯有品格

To Be Marvelous

Yichang·Hubei