常用的git命令总结

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文件。

 

 
posted @ 2019-03-09 11:39  半夜盗贼  阅读(236)  评论(0编辑  收藏  举报