Git clone 指定目录与本地VS项目的创建

本文分享了如何使用Git克隆到指定目录,并在Visual Studio中创建项目的心得。强调了不在git仓库中添加依赖本地路径的文件,以保持仓库的迁移性和大小。介绍了VS2019从现有代码创建项目时避免创建多余解决方案的方法,并解决了“无法解析的外部符号_winmain@16”的问题。

使用Git管理VS项目的一点心得记录

Git clone 指定目录

git clone <repo> [<dir>]

先上命令,方便自己和有需要的人一眼看到。我遇到这个问题的场景是这样的,git clone 默认会在本地创建一个和远程仓库同名的目录把远程仓库里的文件全部塞进去,然而我想要在本地把不同的版本都保存下来,我希望能把文件克隆到我自己创建的目录下,不需要默认的目录,由此我联想到了指定文件/目录进行克隆的方法。
默认的克隆方式如果指定克隆的目录为当前目录(这里的目录都是远程仓库中的目录),就可以达到理想效果了。可以看到本地目录此时就和远程仓库同步了。需要注意的是,git clone 的本地目录必须是空的,vs和git都会在项目/仓库目录下创建隐藏目录,一定要删除。
在这里插入图片描述在这里插入图片描述

VS项目的创建

这里提一点,尽管我只是用到git来管自己的代码,但还是遵循源码原则,不在git仓库里面添加任何依赖于本地路径和工程的东西,同时也避免任何编译的中间产物和结果,这样做的好处是——一来仓库文件比较小(基本都是文本文件),用到github这样的国外站点也能够即时完成上传下载;二来这样整个仓库里面只保存源码文件,迁移性很好,不仅可以用于VS,用其他的IDE或者CMake之类的

<think>好的,用户问的是在git clone之后如何创建本地分支并远程同步。我需要详细回答这个问题,并确保步骤清晰正确。 首先,用户可能已经执行了git clone,这时候默认会创建一个本地的主分支,通常是main或master,具体取决于远程仓库的默认分支名称。用户可能想要创建一个新的分支,并且让它跟踪远程分支,这样后续的push和pull操作会更方便。 我需要分步骤说明如何操作。第一步是克隆仓库,这会自动创建本地分支并跟踪远程的默认分支。但用户可能需要创建另一个分支,比如功能分支或者开发分支,这时候需要使用git checkout -b来创建新分支,并且使用--track参数来设置跟踪远程分支。或者,如果远程分支已经存在,用户需要先fetch然后切换到那个分支。 接下来,可能需要解释如何确认分支的跟踪情况,使用git branch -vv来查看。另外,推送分支到远程时使用-u参数设置上游分支,这样之后的git push和git pull就不需要指定远程分支了。 还要注意一些常见问题,比如分支名称是否正确,远程分支是否存在,权限是否足够,以及如何处理可能的错误信息。例如,如果用户尝试创建的分支在远程不存在,可能需要先创建远程分支或者确认名称是否正确。 另外,用户可能不太清楚跟踪分支的作用,需要简单说明跟踪分支的好处,比如自动关联本地分支和远程分支,方便推送和拉取。 最后,确保提供相关问题,比如如何删除分支、切换分支、查看跟踪信息等,这些是用户可能后续会遇到的问题。 </think>在 `git clone` 之后,创建本地分支并远程分支同步的步骤如下: --- ### **1. 克隆仓库(默认分支)** ```bash git clone <仓库地址> cd <仓库目录> ``` - 默认会创建本地分支(如 `main` 或 `master`),并自动跟踪远程的默认分支(如 `origin/main`)。 --- ### **2. 创建本地分支并跟踪远程分支** #### **场景1:远程分支已存在** - 若远程仓库已有分支(如 `dev`),创建本地分支并跟踪它: ```bash git checkout -b dev origin/dev ``` - 或使用 `--track` 参数(等效): ```bash git checkout --track origin/dev ``` #### **场景2:远程分支不存在(新建分支)** - 创建本地新分支(如 `feature/xxx`): ```bash git checkout -b feature/xxx ``` - 推送分支到远程并设置跟踪: ```bash git push -u origin feature/xxx ``` --- ### **3. 验证分支跟踪关系** - 查看本地分支及跟踪的远程分支: ```bash git branch -vv ``` 输出示例: ``` dev 1234567 [origin/dev] Commit message * feature/xxx 890abcd [origin/feature/xxx] New feature ``` --- ### **4. 同步分支(拉取/推送)** - **拉取更新**(自动同步跟踪的远程分支): ```bash git pull ``` - **推送更新**(自动推送到跟踪的远程分支): ```bash git push ``` --- ### **5. 完整示例流程** ```bash # 克隆仓库 git clone ssh://user@gerrit.example.com/project cd project # 创建并切换到远程已有的 dev 分支 git checkout -b dev origin/dev # 创建新功能分支并推送 git checkout -b feature/new git push -u origin feature/new # 验证跟踪关系 git branch -vv # 后续只需直接拉取/推送 git pull git push ``` --- ### **注意事项** 1. **分支命名规范**:确保分支名符合团队规范(如 `feature/xxx`、`bugfix/xxx`)。 2. **权限问题**:推送前确保你有权限向远程分支提交代码。 3. **首次推送**:若本地分支未关联远程分支,需使用 `-u` 参数绑定。 --- ### **相关问题** 1. 如何删除本地分支和远程分支? 2. 如何切换回主分支(如 `main` 或 `master`)? 3. 如何查看分支的跟踪远程分支信息? 4. 推送时提示 `fatal: The current branch has no upstream branch`,如何解决? 5. 如何同步远程仓库的最新分支列表?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值