gitadd子文件夹
㈠ git篇之add
git add [file1] [file2] -->添加多个文件到缓存区
git add [dir] --->添加文件夹到缓存区包括子文件夹
git add . --->本地仓库缓存所有改动和新增文件不包括删除文件 (在1.x版本的效果在2.x版本同git add -A效果一致)
git add -u --->本地仓库缓存所有改动文件和删除文件不包括新增
git add -A --->本地仓库缓存所有改动文件包括新增和删除
git add --ignore filename ---> 忽略更改文件
git add -i --->进入交互终端,暂存的修改列在左侧,未暂存的修改列在右侧可按提示进行交互
git add -p --->启用补丁暂存,即暂存某个文件的一部分如同时添加func1和func2我们只希望暂存func1即可使用此命令
㈡ git怎么上传文件夹
1、首先在git空间上面创建一个新项目,项目名称跟需要上传的项目名称一致。

㈢ 执行gitadd以后文件消失了
执行gitadd文件之后,没有提交成功,文件就会丢失,可以通过找回文件,重新进行修改。
1、执行gitfsck--lost-found命令。
2、进入后缀为git的文件夹中,将lost-found/other文件夹复制到桌面。
3、丢失的内容是代码,可以将代码考回原路径下的文件,丢失的是图片等文件,直接重命名即可使用。
㈣ git 如何忽略项目中的子文件夹
在使用git tracking 项目文件的变化时,如果项目中包含大的数据文件变化,会占用大量的空间用于记录历史,对于不需要tracking的文件,可以通过以下方法去除git tracking,以节省磁盘空间。
step1: 在git tracking目录下,简历文件,文件名为" .gitignore "。对于windows系统,系统禁止建立该文件名为“ .gitignore ”的文件,可以新建一个文件,重命名为" .gitignore. "
step2: 在文件中添加不需要跟踪的文件夹,并以'/' 结尾,如:
'excludedFOlder/'
reference: https://www.atlassian.com/git/tutorials/saving-changes/gitignore
注意,gitignor文件的编辑请使用windows自带notepad,如果某些时候gitignor不工作,使用下面语句清空cache:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
㈤ Git基本操作
安装完 Git 软件后,需要我们做一下全局的配置工作,如:用户名、邮箱等。
命令:git config
设置用户名命令:
设置邮箱命令:
其中, --global 指定为全局配置,不指定该参数,则为当前所在仓库配置。
查看配置:
在本地创建版本库,需要使用 git init 命令。
首先,我们需要新建一个存放版本库的文件夹,然后进入到该目录所在路径,执行如下命令,格式为:
最后查看文件夹,可以看到包含有 .git 子文件夹,说明创建版本库成功了。
也可以在执行 git init 命令时指定一个文件夹作为版本库。格式为:
克隆版本库是指从现有 Git 版本库中拷贝项目。
克隆版本库使用如下命令,格式为:
如果我们需要克隆到指定的目录,可以使用以下命令格式:
如:克隆远程仓库
添加一个或多个文件到暂存区:
添加指定目录到暂存区,包括子目录:
添加当前目录下的所有文件到暂存区:
查看在我们上次提交之后是否有对文件进行再次修改。 格式为:
-s参数可以帮助我们获得比较简短的显示结果。
如:我们在一个版本库中所在目录中增加一个 Unit1.pas 文件,然后执行如下命令:
显示暂存区和工作区的差异:
显示暂存区和上一次提交(commit)的差异:
显示两次提交之间的差异:
将暂存区内容添加到本地仓库中。
提交暂存区到本地版本库中:
message 可以用于描述提交的信息。
提交暂存区的指定文件到版本库区:
修改后直接提交:
-a参数设置修改文件后不需要执行 git add 命令,直接来提交。
如:我们在上面的命令基础上进行提交
接下来,我们对 Unit1.pas 文件进行修改,然后进行文件比较:
git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset 命令语法格式如下:
可以使用 数字表示
git rm 命令用于删除文件。
如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。所以,在 git 环境下一定要使用 git 的删除文件操作。
git rm 删除文件有以下几种形式:
将文件从暂存区和工作区中删除:
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f 。
如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:
可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:
git mv 命令用于移动或重命名一个文件、目录或软连接。
如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
㈥ github 怎么add整个文件夹
登陆github gui程序
选择你的代码右键打开目录
然后手动添加文件夹和文件
接着右键打开git shell命令行
使用git add dir/files的方式添加文件
如果提示失败请用带-f 参数来添加文件
添加完成之后使用git commit添加说明
输入上面的git commit之后会直接打开你操作系统默认的文本编辑器
输入你的更新说明
关闭文本编辑器之后会动提交更新说明
接着使用git push 来提交我们刚刚的修改
添加完成之后登陆github网站查看你的文件
㈦ git add. 失败
原因:
即在本地初始化的仓库(使用 git init的文件夹) 中的某一个文件夹,也含有 .git 文件 。
解决:
删除子文件夹里的.git文件,然后重新add、commit、push
㈧ git init,git add和git commit三者的区别和使用
git init(版本库初始化命令)
1、$git init
之后可以在demo目录下看到看到一个.git隐藏文件夹,这个文件夹就是版本库,而demo目录及其子目录就是工作区。
git add(将工作区文件提交到暂存区stage)
2、$git add
文件welcome.txt从工作区被提交到暂存区,但此时文件并没有真正进入到版本库当中,文件目前只处于一个中间状态。
3、git commit(将暂存区文件提交到版本库中)
$git commit
这个命令将处于中间状态的文件(暂存区的文件)提交到版本库中,这时才算真正完成了一次提交过程。
值得一提的是,如果此时添加一行文字到welcome.txt
$echo “hello” >> welcome.txt
此时文件发生了改动,如果希望将修改后的文件提交至版本库,必须先git add将修改后的文件存入暂存区,再git commit将文件从暂存区提交至版本库才可以,这和svn有很大的区别,SVN在添加新文之后每次修改的文件直接commit就可以了。
㈨ Git撤销与合并
1. git init
创建一个空的git repo,也就是创建一个.git的子目录,这个目录包含了几乎所有git存储和操作的东西。新初始化的.git目录的典型结构如下:
description文件仅供git web程序使用,平常无需关心。
config文件包含项目特有的配置选项。
info目录包含一个全局性排除文件,用以放置那些不希望被记录在.gitignore文件中的忽略模式。
hooks目录包含客户端或服务端的钩子脚本。
HEAD文件指向目前被检出的分支。
index文件(尚待创建)保存暂存区信息。
objects目录存储所有数据内容。
refs目录存储指向数据的提交对象的指针。
git的默认分支名字是master,git init时默认创建它。
2. git的三种状态,以及工作区(Working directory),暂存区(Index),HEAD
Git 有三种状态,你的文件可能处于其中之一:已修改(modified)、已暂存(staged)和已提交(committed)
基于刚才init的git project,做一些改动。
会看到在git add之后,.git下面多了一个index文件。
这时候,所做的改动就处于已暂存状态,体现在index文件中。
可以利用以下命令查看git缓存了的内容。
同时,.git/objects下面多了一个子文件夹,并生成了一个新文件。这个新文件就对应了刚才所做的改动。这就是git存储内容的方式--一个文件对应一条内容,以该内容加上特定头部信息一起的SHA-1校验和作为文件名。校验和的前两个字符用于命名子目录,余下的38个字符则作为文件名。后面会详叙。
可以通过cat-file命令从git那里查看存储的内容。
git cat-file -p
由于file1.txt的内容为空,所以这里显示为空。
这时候可以往file1.txt里添加一些内容,并git add。可以看到.git/objects又多了一个object。
查看这个新的对象的内容以及类型。会发现它是一个blob对象。
接下来commit这个change。
myProject $ git commit -m "first commit"
查看这个commit 对象的类型以及内容,commit的tree对象所指向的内容, 我们会发现,这个tree指向的是一个blob,而这个blob的内容,就是我们刚刚做过改动的文件。
同时,我们查看一下暂存区的内容:
会发现,暂存区指向的也是同样的blob对象。
至此,一个commit就提交了,工作区,暂存区,以及head又指向了同样的内容。
它们更新内容的顺序为,工作区->暂存区->head
3. git reset
将做过的change撤销掉,就像没有发生过一样。
git reset 应用的顺序为 head->暂存区->工作区。
(1) git reset --soft
当前,git的状态如下。
head指向的内容为:
(head是当前分支引用的指针,总是指向该分支上的最后一次提交。)
index指向的内容为:
(索引是你的预期的下一个提交)
我们来进行一次reset。(移动HEAD, --soft)
--soft将仅仅移动HEAD的指向,而并不会移动index以及工作区。
HEAD 指的是HEAD的父节点。HEAD 是父节点的父节点,也可以写成HEAD 2.
所以这个命令本质上是撤销了上一次git commit命令。
(2) git reset --mixed
接下来,再通过reset来更新索引。(--mixed,默认行为)
(3) git reset --hard
reset更新工作目录(--hard)
git reset --hard HEAD~
--hard标记是reset命令的危险用法,它也是git会真正销毁数据的几个操作之一。
如果这个commit已经被推送到远端,可以用这个命令使远端也回退到相应的版本。
git push origin <branch> --force
4. git revert
将做过的change撤销掉,通过“反做”某一个版本,用一个新的commit来消除做过的change。
当前git的状态:
revert其中一个commit:
再来看,多了一个commit,也就是用来revert的commit:
而若是想要revert某个版本,但是在这个版本后又做过change,则在revert的过程中可能出现冲突,则需要解决冲突之后再提交。
5. git merge 与git rebase
先来讲讲git merge。
当前master 和 dev branch:
接下来打算将dev的工作并入master分支。
另外,还想将master的工作也并入dev。
git merge之后,会发现dev branch指向了与master相同的commit:
所以,git merge是把两个分支的最新快照,以及两者最近的共同祖先进行三方合并,合并的结果是生成一个新的快照。
接下来,用git rebase来合并分支。
当前的git状态
此时,采用git rebase,将dev的工作并入到master。
当在master branch上执行git rebase dev的时候,实际发生的事情是,找到master和dev两个分支的最近共同祖先,对比当前分支(master分支)相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将master分支指向目标基底(dev的head指向的commit),最后以此将之前另存为临时文件的修改依序应用。
可以看到,rebase使得提交历史更加整洁。尽管实际的开发工作是并行在不同branch上进行的,但是它们看上去就像是串行的一样,提交历史是一条直线没有分叉。
因此,变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。这两种方式,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同。
㈩ git 怎么add 文件夹下文件夹的文件
如果文件名没什么特别, 那意思就是一样的. Shell里 "" 通常用来包含特殊文件名的文字和转义. 比如假如你的文件名里有空格, 那么就只能使用后面一种: yarco@me git$ ls -ltotal 0-rw-r--r-- 1 yarco staff 0 3 9 08:14 A 1.txt-rw-r--r-- 1
