很多时候,我们会遇到在一个git仓库下包含了很多小项目,但是随着有些项目的需求逐渐增大或则市场需求,我们需要将其抽离出来,作为一个单独的项目进行维护并开发. 但是,如果直接拷贝文件粘贴到新建的git repository中,会丢掉原有的commit,所以我们不能这么粗暴地做. 怎么办呢?下面会根据一个例子,详细说明. 假如我们在demos仓库中,包含了如下小项目,其中,我们想将Comet这个目录下的文件单独抽出来,作为一个单独的项目维护开发,如下: 首先,我们通过git clone 将demos…
1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为CSSTest 3, 将本地仓库上传到远程仓库: 运行命令: git remote rm origin git remote add origin https://github.com/hyuanyuanlisiwei/CSS3Test git push -u origin master…
1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为CSSTest 3, 将本地仓库上传到远程仓库: 运行命令: 新项目则:git init 已有git的项目:git remote rm origin 接着 git remote add origin https://github.com/hyuanyuanlisiwei/CSS3Test (这之前你也…
当文件之前已经被提交到仓库后,后面即使将文件路径添加到 .gitignore ,使用 git status 命令,依然会看到文件被修改. $ git status 位于分支 master 您的分支与上游分支 'origin/master' 一致. 尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: hardware/r…
前几天在做一个项目的时候,因为需要,需要将Server A 上SVN仓库 repos1中的项目pro1迁移到Server B 上的SVN仓库中,首先想到的是:通过复制,但是仔细一想,这样是不可能的:然后想到的是先把项目pro1 checkout到本地,然后再 将本地的项目 import 到 ServerB的svn仓库中,但这样一来,ServerB上的SVN仓库中 就好比完全是一个新的pro1项目了,也就失去了svn管理的意义了.下面有一种方法可以解决: (在进行下面的操作时,请注意备份仓库数据,…
1.查看提交历史 --  git log  使用 git log 可以查看到所有的提交(commit)历史. 1. $ git log 列出所有commit,最新的commit在最上面.会显示每个提交的作者,提交信息等. 2. $ git log -p -  显示最近的两次提交每个文件修改了哪些地方.-p用来显示每次提交修改了哪些地方.-2用于指定只显示最近的两次提交. 3. $ git log --stat --stat 显示每次提交简略的统计信息.具体包括:在每次提交的下面列出所有被修改过的…
转载请注明出处 http://www.goteny.com/articles/2014/06/136.html http://www.cnblogs.com/zjjne/p/3778640.html 1. 先远程登录局域网内服务器 2. 在服务器里 切换到某个文件夹下, 然后新建一个文件夹用作git仓库(文件夹名最好跟准备推到服务器的仓库文件夹名相同), 并切换到此文件夹下, 接着将用git init 命令在此文件夹下建立一个git 仓库(图中的—bare参数为建立一个裸仓库), 然后退出服务器…
克隆git仓库中的某一个分支,可用如下命令: git clone -b <branch_name> <repo> 如:git clone -b hdcp_ree_tee_dev ssh://hunterding@shanN15/home7/hunterding/HDCP…
一.安装git软件和TortoiseGit客户端(git需配置环境变量,但安装时已经配置好,无需考虑) 二.生成公钥和私钥(建立与码云的连接) 三.在码云上新建项目(建议在组织的基础上)   四.在码云上添加刚刚生成的公钥 五.将码云上新建的项目SSH地址放在URL和PUSH URL上 右键TortoiseGit-Settings 确认后-与码云连接成功显示 六.新建git本地仓库 新建库名-右键Git Create Repository here(打开会出现.git文件) 将项目先拷入本地gi…
问题描述 不慎在创建.gitignore  文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的文件进行管理, 首先我是用 git rm  -r 此命令去删除然后提交到git仓库,后面发现这样会将本地文件删除,并不是我想要的效果, 最终找到命令 git rm -r --cached 成功将git仓库中的 文件删除 并保留文件在本地 下面整理出删除git仓库中文件夹或文件的相关git命令 1.删…
$ git push -u origin master To git@github.com:xxx/xxx.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:xxx/xxx.git' hint: Updates were rejected because the remote contains work that you do hint: not h…
git 仓库中删除历史大文件 在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢.而且用删除 提交历史记录的方式不是很实际. 以下分几个步骤介绍如何减小.git文件夹 1.显示10个最大的文件id列表 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10 $ git verify-pack -v .git/objects/pack/pack-*.idx | sort…
在本地新建项目的目录中打开Git Bash命令行工具 运行以下命令,设置全局信息(包括用户名,邮箱地址) git config --global user.name "你的姓名" git config --global user.email "xxx@163.com" 创建本地数据仓库,执行以下命令(同样要在项目目录中) git init touch README.md git add  README.md git commit -m "first com…
坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原理并不是很了解,只是随着日常使用,终于开始理解git其实是一个指针指向一次提交的对象,当你在各个分支间切换的时候,指针就随之切换,版本也随之更改. 那么,git 是如何做到的能在各个版本间无缝切换的呢.即使long long ago的代码,只要来一句git reset --hard sesd54f5…
Git submodule 仓库中包含另外的仓库(子仓库) 添加 submodule 在父仓库 git 目录下: git submodule add ssh://ip/[path]/xxx.git 注意:不要在ip前加username@,例如:git submodule add ssh://username@ip/[path]/xxx.git,这样的话你就得把密码告诉别人了,如果不加username,那么会用git config 中的user去登陆 在父仓库添加 submodule 的时候,会让…
如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/…
自动化工具 一次性从git远程仓库中克隆到本地. import os # git操作 将远程repo克隆到本地 def git_clone_cd_pull(url): # 获取仓库名称 如fullspider.git中,获取fullspider repository_git = os.path.splitext(os.path.split(url)[1])[0] # 定义git相关命令 cmd_git_clone = 'git clone {url}'.format(url=url) cmd_c…
git从远程仓库中更新代码到本地仓库 有时候在使用git pull的时候,会莫名才报错.查了很多资料,尝试过git的很多命令.包括git fetch命令,都会报同样的错.最后终于发现了一条捷径,由网友提供, 当从远程的仓库到本地出错时候,使用git stash效果更佳. 方法: git stash git pull 这样就可以更新远程仓库到本地了~…
背景:项目新建了个git仓库(B仓库),放改版的新项目,现在运维所有项目构建都是在一个Jenkins里构建,然后拉镜像到相应服务器里,为了不让运维每次构建不同项目需要改git仓库地址,需要把原来项目仓库(A仓库)中的项目分支都移到B仓库中,作为新项目的分支,就延伸出了这个需求 1.在B仓库中重新设置远程origin地址为A仓库地址 git remote set-url origin <old url> 2.拉取A仓库中的某个分支 git fetch origin <分支名称> 3.…
使用git时间不长,在调机械臂项目的时候,由于对TwinCAT3和vs的机制不太了解,没有添加很好的忽略文件(.gitignore).造成git仓库包含了很多没有用的文件,例如vs的sdf文件,TwinCAT3的PLC编译文件等等.当时急着赶项目结题也没有考虑特别多,抱着能用就行的心态.现在项目结题初期的检测工作已经完成,回来填之前留下的坑. 通过查找资料,看到可以通过BFG工具来清理git仓库.在GitHub的帮助页面中也推荐了这个工具.官网说是比git-filter-branch工具快10-…
如何删除GIT仓库中的敏感信息 正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉.公司可能其它还有相关规定,如禁止私人邮件加入GIT仓库.如果违反这些规定,可能会面临辞退.高额罚款.或牢狱之灾等非常严厉的惩罚. 由于Git的正常操作流程,导致敏感信息一旦进入主分支,再怎么在新的Pull Request中删除,也无能为力了.其它人都能在历史记录中查询到历史记录中的配置.所以这要求对Git的签名和签入…
.gitignore 在Git中,很多时候你只想将代码提交到仓库,而不是将当前文件目录下的文件全部提交到Git仓库中,例如在MacOS系统下面的.DS_Store文件,或者是Xocde的操作记录,又或者是pod库的中一大串的源代码.这种情况下使用.gitignore就能够在Git提交时自动忽略掉这些文件. 忽略的格式 # :此为注释 – 将被 Git 忽略 *.a :忽略所有 .a 结尾的文件 !lib.a : 不忽略 lib.a 文件 /TODO :仅仅忽略项目根目录下的 TODO 文件,不包…
今天,需要再本地使用git管理代码,但是当代码创建好的时候,想发布到github上面的私有仓库中,但是没有提前创建远端仓库,所以需要把本地git仓库推送到远端另外一个仓库了,下面进行简要记录,刚刚经过的过程,方便之后再次使用的时候,不会重复劳动: git 设置 git config user.name user.email 添加 github 远程 公钥 git init . 创建本地仓库 创建文件并使用 git add . 进行文件提交 git commit -sam "" 创建 g…
假定当前分支下,abc/123.txt需要从git仓库中删除: git .txt //删除abc目录下的123.txt文件,如果要删除abc目录,使用命令:git rm -r --cached abc git commit -m "删除abc目录下的123.txt文件" git push 说明: 1.参数-r,表示删除目录 2.git rm --cached abc/123.txt ,表示删除的是本地仓库中的文件,且本地工作区的文件会保留,不再与远程仓库发生跟踪关系 3.如果本地仓库中…
一:操作步骤第一步:建立git仓库 cd到你的本地项目根目录下,执行git命令,此命令会在当前目录下创建一个.git文件夹. git init 第二步:将项目的所有文件添加到仓库中 git add . 这个命令会把当前路径下的所有文件,添加到待上传的文件列表中. 如果想添加某个特定的文件,只需把.换成特定的文件名即可 第三步:将add的文件commit到仓库 git commit -m "注释语句" 第四步:去github上创建自己的Repository,点击NewRepository…
Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. Step1:Job源码管理中,选择Git(如无Git选项则需先安装Git插件),输入仓库URL及认证信息.此时已经可以把仓库中所有文件拉取到该Job的工作空间中了,但是还没达到指定目录的要求,不够灵活. Step2:新增Additional Behaviours,分别选择Sparse Checko…
上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: 然后,git pull:拉取一下代码,与库中代码,做到同步,有冲突则解决冲突,如果省了这一步,别人有提交的代码,没有更新,自己提交就会报错,再走这一步,就会把别人的代码拉取出来,然后一起提交,就相当于你提交了自己的代码,也提交了别人的代码:还有,有时这样会使库中代码乱掉,别人的心血也会丢失,你就是罪…
对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载一个客户端安装,一切尽在官方网站: http://git-scm.com/ 配置自定义信息 # 配置用户名和密码,标识用户,且可以为后续提交钩子发送邮件, 必填 git config --global user.name "Jayfeng" git config --global user…
在gitlab上new 一个project 跳转到本地的git 目录中,运行命令 git remote add gitlab gitlab_new_project_address -最后运行如下命令,将本地git仓库push到server: git push gitlab master…
目录 git pull如何强制覆盖本地文件 Git如何同时删除本地分支和远程分支 Git如何撤销最近一次提交 Git撤销本地的最后一次提交 Git撤销最近一次远程提交 如何修改提交信息和文件 修改本地提交信息(未推送到远程) 修改远程提交信息 Git如何在提交之前撤销git add Git如何重命令本地分支 如何在Git中添加一个空文件夹 如何在Git中从远程分支克隆到本地 Git如何将本地分支推送到远程 如何在Git中丢弃掉当前工作分支下所有untracked的文件 Git如何从远程拉取并强制…