zoukankan      html  css  js  c++  java
  • VS中使用git

    一、克隆远程仓库已有分支

      当作为一个新成员参与别人已经建好的项目中,此时远程已经有有一些分支了。

    1、克隆

    从远程下载代码步骤如下:打开VS,切换到“团队资源管理器”,点上方“主页”右侧的下拉三角,选择项目->连接到团队项目,然后选择“克隆”,填入Git的Remote Url和要克隆到的本地目录(该目录必须为空),然后点克隆按钮即可将项目克隆到本地。

         

    2、本地拉取远程的一个新分支

      只需单击同步里面的 提取。

     

     常见名词解释

    拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Meger)

    获取/提取(Fetch):从远程版本库获得最新版本

    合并(Meger):将两个版本库进行合并操作

    提交(Commit):将所做的更改,存入本地暂存库

    推送(Push):将所做的更改,存入远程版本库

    同步(Pull+Push):先将远程库拉取,再将本地库推送到远程库,相当于(Pull+Push)

    变基到(Switch):切换分支(双击即可切换)

     

    git  pull     从远程拉取最新版本 到本地  自动合并 merge            git pull origin master。。即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

    git  fetch   从远程获取最新版本 到本地   不会自动合并 merge    git fetch  origin master       git log  -p master ../origin/master     git merge orgin/master

    实际使用中  使用git fetch 更安全    在merge之前可以看清楚 更新情况  再决定是否合并

    二、初建项目并push到github上

    1、在远程Github等服务器新建一个空Repositories,这里起名GitTest。

    打开VS2013,新建项目GitTestProject,右键单击解决方案,选择“将解决方案添加到源代码管理器”,选择Git

    同步,推送到远程仓库

    注:若没有的这个选项话,也可以用git bash去操作:

    连接远程仓库,在本地的命令框中输入下面的命令,即连接到了名为poster的仓库上

    git remote add origin https://github.com/xxxx/yyy.git 

    把本地项目推送到远程仓库:

    git push -u origin master

    三、提交代码

      暂存想提交的文件,不想提交的右键暂存。提交临时文件,拉取再推送。

     有冲突时,可以点击冲突,然后对比文件,选择使用远程的代码还是本地代码,然后再次提交。

    四、忽略文件

      把某些目录或文件加入忽略规则,后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

    那么解决方法是先把本地缓存删除:

    git rm -r --cached .
    将本地代码重新加入
    git add .

    不想提交的文件,最好一开始提交 之时 就不要提交到远程。

    五、还原修改

      如果提交了一次代码到远程,然后发现想撤销上次提交,即想要还原修改,转到修改还原的代码处,单击方法引用处的

    在右侧即可点还原操作。然后单击同步,进行同步到远程即可

    六、常见问题

    1、Git Push Error: dst refspec xxxx(分支号) matches more than one.

    最近工作中遇到这样的问题,使用的是Git做版本控制,在PUSH代码的时候,出现如下错误:

    1. error: dst refspec XXX matches more than one.
    2. error: failed to push some refs to 'git@xxx.xx:xxx.git'

    初步一看,还想,怎么可能,出现两个相同的分支?表示很不解。
    查看Git服务器上的分支也只有一个指定名称的分支,最后无意间发现服务器上有一个和分支名称相同的tag,按照项目组的习惯,tag一般都是以时间作为名称的,这里怎么会出现这个,好奇中删掉它重试,果然,Git把tag和分支搞在一起了,tag名称不能和分支名称完全相同,不知道这是Git个别版本的bug还是就这样机制。

    2、git中进入带有空格的目录下的解决办法

       比如,要进入Program Files目录下,有两种方法:

    • 将Program Files目录用引号引起来。

      $ cd "Program Files"

    • 将空格处使用空格引号

      $ cd Program" "Files

    3.Git clone 错误 | error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

    详细见

    4.Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.

    为IP地址192.30.255.113的主机(RSA连接的)持久添加到hosts文件中。

    详细见

    5.Windows下git出现Permission denied的解决办法

    本地git bash 使用git clone git@github.com:***.git方式下载github代码至本地时需要依赖ssh key,遇到权限不足问题时一般都是SSH key失效或者SSH key不存在,重新创建SSH key一般就可以解决问题;

    详细见

    6.Github仓库太大,公司限制速度,下载不了

    可以尝试用 码云 去搜下是否有相同的库

    7、Git每次push都需要输入用户名和密码

    问题:
    已经添加了 SSH key,但是 push 的时候,需要输入,用户名和密码

    原因:
    出现这种情况的原因是我们使用了http的方式clone代码到本地,相应的,也是使用http的方式将代码push到服务器。

    git clone https://github.com/xxxxx

    这就容易导致这个问题的出现。而如果采用ssh方式的话,是这样clone代码的:

    git clone git@github.com:xxxxx

    解决办法:

    将http方式改为ssh方式即可。

    1.先查看当前方式:git remote -v

    2.把http方式改为ssh方式。先移除旧的http的origin:git remote rm origin

    3.再添加新的ssh方式的origin:git remote add origin git@github.com:xxxx/linux-system-programming.git

    4.改动完之后直接执行git push是无法推送代码的,需要设置一下上游要跟踪的分支,与此同时会自动执行一次git push命令,此时已经不用要求输入用户名及密码啦!

    git push --set-upstream origin master

     参考:

    VS2013中使用Git建立源代码管理

    VS2015 Git 源码管理工具简单入门

    使用Git进行协同开发Git 工作流程

  • 相关阅读:
    入栈的方式
    出栈的方式
    入栈的方式
    累加数据段中的前3个字型数据
    累加数据段中的前3个字型数据
    出栈的方式
    入栈的方式
    python中如何清空列表
    python中统计列表元素出现的次数
    python中删除列表元素
  • 原文地址:https://www.cnblogs.com/peterYong/p/9774941.html
Copyright © 2011-2022 走看看