1.获取远程gitlab上的代码到本地:其中http://www.xxx.git为远程项目的url
git clone http://www.xxx.git
从远程指定分支上拉取代码,使用Git下载指定分支命令为:git clone -b 分支名 仓库地址
git clone -b develop http://www.xxx.git
2.查看当前所属本地分支状态以及在当前分支是否有修改代码:
git status
3.查看当前项目所有分支:
git branch -a
查看本地所有分支
git branch
查看本地分支与远程分支的关联
git branch -vv
4.切换分支并将本地分支和远程分支进行绑定:其中localBrachName为自定义的的本地分支名,remoteBranchName为远程分支的全名,例如origin/develop
git checkout -b localBrachName remotes/remoteBranchName
如果已经将本地分支和远程分支进行了绑定,那么切换分支时只需要执行:
git checkout localBrachName
在该分支上所作的修改提交后会同步到已经绑定好的远程分支
5.新建本地分支与远程分支关联:其中localBrachName为本地分支名,remoteBranchName为远程分支全名,例如origin/develop
git branch --set-upstream-to=remoteBranchName localBrachName
6.比较修改文件前后的不同:其中filename为待比较的文件名
git diff filename
7.添加改动的文件到本地仓库:其中filename为待添加的文件;如果有多个文件时,文件之间用空格隔开,或使用命令:git add . 将所有文件添加到本地仓库
git add filename
8.提交修改到本地仓库:其中message为本次提交的备注信息
git commit -m 'message'
9.提交修改到远程分支:
git push
10.分支合并:先切换到合并的分支,例如合并到develop分支,则先切换到develop分支,然后再执行下面命令;其中localBranchName为被合并的分支;合并完成之后需要执行git push,同步到远程分支
git merge localBranchName
11.建立本地仓库与远程仓库的关联:
git remote add origin http://www.xxx.git
12.远程新建分支后,本地看不到新分支的情况,执行该命令刷新:
git remote update origin --prune
13.删除本地分支(-D强制删除)
git branch -d test
14. 使用.gitignore文件可以配置忽略规则,如果没有.gitignore文件,可以自己手动创建。在.gitignore文件中的每一行保存一个匹配的规则例如:
# 此为注释,将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 忽略规则中lib.a 除外
/vendor # 仅仅忽略当前目录下的vendor文件,不包括其他目录下的/vendor
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 忽略 doc目录下所有txt后缀的文件
在想要忽略内容的目录下创建.gitgnore,编辑.gitignore文件,用git status查看状态,想要忽略的文件还是显示被追踪状态。原因是git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被提交到版本管理中,就算是在.gitignore中声明了忽略文件也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git add,这样就不会追踪忽略的文件了。git清除本地缓存命令如下:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
15.强制返回上一次的源码状态(其中xxxxxx为提交前面的6位数,可用 git log查看)
git reset --hard xxxxxx
16.git diff提示filemode发生改变(old mode 100644、new mode 10075)
文件chmod后其文件某些位是改变了的,如果严格的比较原文件和chmod后的文件,两者是有区别的,但是源代码通常只关心文本内容,因此chmod产生的变化应该忽略,所以设置一下,切到源码的根目录下
git config --add core.filemode false
17.放弃本地修改
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop恢复
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
18.撤销操作主要有如下几种
git commit --amend 撤销上一次提交 并讲暂存区文件重新提交
git checkout -- <file> 拉取暂存区文件 并将其替换成工作区文件
git reset HEAD -- <file> 拉取最近一次提交到版本库的文件到暂存区 改操作不影响工作区
19.查看某一段代码的最后提交人
git blame -L 100,100 <filename>
git blame -L 100,+10 <filename>
git blame <filename>
20.查看某一段代码的提交历史
git log -L start,end:<filename>
git log -L 155,155:<filename>
21.删除git commit 中间的提交
git rebase -i (commit-id)
#commit-id 为要删除的commit的下一个commit号,在需要删除的commit前面编辑drop然后保存,再执行git push -f