Git的安装及其配置
下载
通过淘宝镜像:
下载
进行安装,因为会自动配置环境变量,所以不需要手动去添加
Git Bash:Linux shell
Git CMD: Windows shell
配置
git config -l 查看当前配置
配置用户设置:
文件夹 - Gitet
设置
git config --global user.name "" #名称
git config --global user.email "" #邮箱
项目创建
本地仓库搭建
当前目录建立一个git代码库
$ git init
克隆远程仓库
# 通过URL 克隆
$ git clone [url]
成功克隆项目
文件的四种状态
1.untacked:未跟踪,不参与版本控制 通过命令 git add 状态变为staged
2.unmodify:文件已经入库,且并未修改 被修改则成为modifild
使用git rm 移出版本库 成为 untacked文件
3.modifiled:文件已修改,通国git add 进入暂存区 staged 状态
使用 git checkout 丢弃修改 返回unmodify状态
4.staged:暂存状态 执行 git commit 将修改同步到库中 文件变为unmodify状态
执行 git reset HEAD filename 取消暂存,文件状态为modified
get status 查询当前文件状态
get add . 跟踪文件状态,添加所有文件到暂存区
git commit -m "提交信息" 添加到本地仓库
.gitignore文件下 忽略文件
# 忽略 `*.a` 文件
*.a
# 忽略 `*.A` 文件,但 `somefile.A` 除外.
*.A
!somefile.A
# 忽略 `*.b` 和 `*.B` 文件
*.[bB]
# 忽略 `*.c` 和 `*.C` 文件,但 `somefile.C` 除外.
*.[cC]
!somefile.C
# 只忽略 `somepath/` 目录(包括该目录下所有文件),但不忽略 `somepath` 文件
somepath/
# 只忽略 `somepath/` 一级子目录下 `*.txt`,但不忽略 `somepath/sub/*.txt` 文件
somepath/*.txt
# 忽略 `somepath` 文件和 `somepath` 目录
somepath
# 只忽略 `somepath` 文件,但不忽略 `somepath/` 目录
somepath
!somepath/
# 只忽略当前目录下的 `somepath` 文件和目录,但不忽略子目录的 `somepath`
/somepath
建立SSH 公钥
ssh-keygen -t rsa 生成公钥
公钥注册到码云
推送到远程仓库
git push origin master 将改动提交到远程仓库 master分支
git push
添加到暂存区-> commit 提交到本地仓库 -> git push到远程仓库
分支
分支常用操作
查看本地分支 git branch
查看远程分支 git branch -r
新建分支 git branch xx
新建分支并切换到该分支 git checkout -b xx
切换回主分支:git checkout master
再把新建的分支删掉:git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin
更新与合并
要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
合并指定分支到当前分支 git merge [branch]
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add
在合并改动之前,你可以使用如下命令预览差异:
git diff
替换本地改动
可以使用如下命令替换掉本地改动:
git checkout --
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
完整流程
-
git init //初始化仓库
-
git add * //添加文件到本地仓库
-
git commit -m "first commit" //添加文件描述信息
-
git remote add origin + SHH地址 //链接远程仓库,创建主分支
-
git pull origin master // merge:拉取最新的仓库状态
-
git push -u origin master //推送到远程仓库
提示错误:Updates were rejected because the tip of your current branch is behind
git pull --rebase origin master //rebase:拉取合并到最新的时间线的分支
git push -u origin master