下载地址:https://git-scm.com/download
git一般工作流程:
1.从远程仓库中克隆 Git 资源作为本地仓库。
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区。
4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
工作原理 / 流程:Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库
在开始菜单里面找到 "Git --> Git Bash" 或者在右键菜单中找到" Git Bash " 打开命令行
输入 git config --global user.name "xxxxxx" 设置用户名 git config --global user.email "xxxxxx" 设置邮箱
设置后表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定的不同的用户名和邮箱(找到项目所在目录下的 .git/文件夹,进入执行:git config user.name "xxxxxx" git config user.email "xxxxxx")。
版本库:“.git”目录就是版本库,将来文件都需要保存到版本库中。
工作目录:包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
操作本地仓库常用命令:
创建仓库的命令(切换目录到仓库所在的目录):git init
把文件修改添加到暂存区:git add xxxx
把暂存区的所有内容提交到当前分支:git commit -m "xxx提交说明xxx"
查看状态:git status
查看分支:git branch
创建分支:git branch xxx
切换分支:git checkout xxx
创建+切换分支:git checkout –b xxx
合并某分支到当前分支:git merge xxx
删除分支:git branch –d xxx
查看当前分支的日志:git log
忽略文件或文件夹:
在工程中有时候并不是所有文件都需要提交的
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
忽略语法:
空行或是以 # 开头的行即注释行将被忽略。
可以在前面添加正斜杠 / 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。
可以在后面添加正斜杠 / 来忽略文件夹,例如 build/ 即忽略build文件夹。
可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
* 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"或".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件);
[ ] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; ? 用来匹配单个字符。
例:
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO(避免递归)
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
一、将本地的项目上传到远端服务器
1、远端服务器上创建一个项目 xxxxx
2、本地创建一个文件夹 xxxxx,然后右键使用 git bash 命令行
3、使用 git init 命令 ,初始化一个git 本地仓库(项目),会在本地创建一个 .git 的文件夹
4、使用git remote add origin xxx远程仓库地址xxx ,与远程仓库建立连接
如果出现 fatal: remote origin already exists.错误,先执行git remote rm origin,然后再执行上面的命令
5、使用 git pull origin master 命令,将远程仓库pull到本地文件夹
6、将要上传的文件,添加到刚刚创建的文件夹
7、使用git add . 或者 git add + 文件名 (将文件保存到暂存区)
8、使用git commit -m "描述新添加的文件内容" (就是注释) (文件保存到本地仓库)
9、使用git push origin master ,将本地仓库推送到远程仓库
二、将远程仓库拉取指定分支到本地仓库
a) 本地有其他分支在项目:
进入项目目录执行git checkout -b 本地分支名 origin/远程分支名
如果报错,fatal: 'origin/dev' is not a commit and a branch 'dev' cannot be created from it
需要从git上重新拉取数据然后再创建远程分支到本地 git pull
将本地仓库推送到远程仓库时,如果本地分支名和远程分支名相同,直接使用 git push origin 分支名,否则使用 git push origin 本地分支名:远程分支名
b)本地没有项目
git clone -b 分支名 仓库地址
三、将远程仓库项目克隆到本地
1、cd 到想要保存远程仓库项目的文件夹
2、使用 git clone xxx远程仓库地址xxx
该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。git clone #版本库网址# #本地目录名#
git clone与git pull区别:
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.
clone是将一个库复制到你的本地,是一个本地从无到有的过程
从远程服务器获取一个分支的更新到本地,并更新本地库,叫做pull.
pull是指同步一个你在本地有版本的库内容更新的部分到你的本地库
git pull相当于是从远程获取最新版本并merge(合并)到本地,如果发生了冲突,可以使用git reset --merge进行回退 git pull = git fetch + git merge,git fetch更安全一些
git pull origin #远程分支#:#本地分支# 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。相当于1. git fetch origin 2.git merge origin/#远程分支#