git命令:
初始化仓库
git init //在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
git remote add origin [git address] //与远程仓库建立连接
git remote -v // 查看远程连接地址
git remote remove origin //删除远程连接
克隆仓库
git clone url //获取一个url对应的远程Git repo, 创建一个local copy.
git clone [url] newname //指定特定的名称,默认clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹。
创建/发布新分支
git branch branchname // 在当前分支上创建一个branchname分支
git checkout -b branchname // 创建并切换分支到branchname
git push origin [remote branchname] // 把当前本地分支推送到远程仓库并创建名称
查看分支
git branch // 查看本地分支
git branch -r // 查看远程分支
git branch -a // 查看所有分支
git branch -v //可以看见每一个分支的最后一次提交.
git branch -vv // 查看本地分支和远程分支的映射关系
切换分支
git checkout branchname // 切换分支到branchname
建立/修改分支的追终关系
git branch --set-upstream branchname origin/master // 建立本地分支branchname 并建立追踪关系,如果建立了本地仓也建立了追踪会修改追踪关系到远程分支master
git branch --track branchname origin/master // 建立本地分支branchname,并建立追踪关系到远程分支master
git branch --set-upstream-to origin/master // 修改当前分支的远程追踪关系到master
拉取/更新代码
git fetch origin branchname // 命令来把远程branchname分支拉到本地
git merge //合并到本地当前分支
git pull origin branchname // 相当于先从远程分支branchname拉取代码,再合并到当前分支
提交/推送代码
git add . // 把改动的代码和文件添加到本地暂存区(staging area)
git commit // 提交上一次暂存区的代码和文件 (只使用git commit会进入一个vim编辑器让编辑提交信息)
git commit -m “commit message” // 提交信息
git commit -a -m “commit massage” // 会自动把未add 的文件进行add然后提交
git push // 推送当前分支代码到远程仓库 (如果已经和远程的同名分支建立追踪关系)
git push origin branchname // 推送当前分支代码到远程仓库branchname
git push origin HEAD:master // 更新当前分支到master分支
git push -u origin branchname 或者 git push --set-upstream origin branchname //push的同时会指定当前分支的upstream
合并分支
git merge branchname // 合并当前分支到branchname分支
删除分支
git branch -d (branchname): //删除本地分支
git push origin --delete branchname // 删除远程分支
.gitignore文本忽略规则:
语法:
以”#”号开头表示注释;
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
语法示例:
1、规则 file/
说明:忽略目录file下的全部内容;不管是根目录下的/file/目录,还是某个子目录/child/file/目录,都会被忽略。
2、规则 /file/
说明:忽略根目录下的/fd1/目录的全部内容;
3、规则
/*
!.gitignore
说明:忽略所有文件,但不忽略.gitignore文件。