新建本地仓库两种方式:
1.项目工作目录下,运行git bash后,执行init命令,生成.git目录。
2.项目工作目录下,运行git bash后,clone远程仓库连接,拷贝每个文件的每个版本。了解两种协议 https或者ssh。
工作目录(文件所在位置)+暂存区(.git目录下)
工作目录下所有文件只有两种状态:已跟踪和未跟踪。已跟踪分为三种状态:未修改、已修改和已放入暂存区。
clone下来的均为已跟踪的未修改状态,某个文件修改后,则是已修改状态,最后add以后就会放入暂存区,接着commit以后提交到本地仓库,则又是未修改状态,具体文件状态见下图:
查看文件状态: git status 对应三种状态
1、Changes not staged for commit. 未暂存:修改后,未add到暂存区
2、Changes to be committed. 未执行commit
3、nothing to commit, working directory clean. 工作目录干净,上次commit后。
4、Untracked files. 文件未跟踪,需要add变为已跟踪
可见:add命令有两个用途:
1、将已跟踪文件放入暂存区
2、将未跟踪文件变成跟踪文件
总结起来,add就是添加内容到下一次提交中。
git commit -m "提交注释" : 将暂存区的内容提交,注意,提交的是暂存区域内的快照,方便版本回退和比较。
生成提交ID,即SHA-1校验和,一种哈希值。显示提交所在分支信息,提交ID,文件修改信息。
忽略文件:当不需要的文件不想纳入git管理,则可创建.gitignore文件,列出忽略文件的模式。
可使用glob模式来进行模式匹配:shell简化的正则表达式。
跳过暂存区提交(省去add步骤):将所有已跟踪的文件一并提交
git add -a -m "提交注释"
移除文件:
1、从工作目录中手动删除后,若文件之前未在暂存区中,则git rm 文件名/文件目录名(glob模式)
2、从工作目录中手动删除后,若文件之前在暂存区中,则强制删除 git rm -f 文件名/文件目录名(glob模式)
3、想把文件从git仓库(亦即暂存区)中删除(不被继续跟踪),但是依然保留在当前工作目录(磁盘)中,则:
git rm --cached 文件名/文件目录名/(glob模式)
第3点适用场景如:一些不想被跟踪的临时文件忘记添加到.gitignore中,最后添加到暂存区中,想删除。
移动文件:
git mv file_from file_to
该命令等价于:
mv file_from file_to
git rm file_from
git add file_to
查看远程仓库:
git remote <-v>:列出所有远程仓库信息
git remote show
添加新的远程仓库:
git remote add
从远程仓库中拉取数据:
1、git fetch
访问远程仓库,拉取所有你还没有的数据到本地仓库,执行完成后,你将会拥有该远程所有分支的引用。但并不会自动合并修改当前工作。
2、git clone
默认情况下,会自动设置本地master分支跟踪克隆的远程仓库的master分支
3、git pull
抓取数据,并自动尝试合并到当前分支
推送到远程仓库:
git push
远程仓库的重命名:
git remote rename name-pre name-now
远程仓库的移除:
git remote rm name-rm