Git相关指令
gitlab安装了之后,会自动给你装好Git,来看看Git的一些操作指令:
检出仓库:git clone git@192.168.75.64:root/gm.xnhd.com.git
查看仓库:git remote -v
输出结果为:
有点类似于svn的svn info,用于查看远程版本库的地址等情况,很好用!
添加远程仓库: git remote add [name] [url]
删除远程仓库: git remote rm [name]
拉取远程仓库: git pull [remoteName] [localBranchName]
推送远程仓库: git push [remoteName] [localBranchName]
关于git pull指令,这里额外的说明下:
git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:
git fetch orgin master #将远程仓库的master分支下载到本地当前的branch中
git log -p master ..origin/master #比较本地的master分支和origin/master分支的差别
git merge origin/master #进行合并
git pull origin master #相当于从远程获取最新版本并merge到本地,等于 git fetch + git merge,在实际生产环境中,git fetch更安全一些!
git log #查看git日志
git reflog #查看git执行的历史命令
git checkout -- file #撤销工作区的修改
git reset HEAD <file> #撤销暂存区的修改
git reset --hard commit_id #强制穿梭成对应的commit_ID版本的代码
git rm #删除一个文件
git remote add origin git@github.com:michaelliao/learngit.git #把本地的master与远程的master做关联
git push -u origin master #做好关联,然后就把本地的所有东西推送到远程
git merge <name> #合并<name>分支的改动到当前分支,一般是在master分支操作,把功能分支的代码合并到主线
git merge --no-ff <name> #以普通方式合并,而不是fast-forward,fast-forward是看不到合并日志的
git log --graph --pretty=oneline --abbrev-commit #可以看到合并分支图
git stash #保存当前分支工作区的修改,好比做了一个快照
git stash list #查看你在该分支所做的stash列表
git stash pop #恢复到stash的工作区,并删除stash列表
git stash apply stash@{0} #如果有多个stash,选择性的恢复到stash@{0}
git stash drop #删除对应的stash
git remote -v #查看远程版本库地址
查看本地分支: git branch
查看远程分支:git branch -r
创建本地分支:git branch 【name】 #新分支创建后,不会自动切换为当前分支,也就是依旧停留在老分支里!
删除分支:git branch -d 【name】 #-d参数只能删除已经参与了合并的分支,不能删除未合并过的分支,强制删除的话,可以用-D
切换分支:git checkout 【name】
创建分支并立即切换到新分支:git checkout -b 【name】
合并分支:git merge 【name】 #将名为【name】的分支与当前分支合并!
拉取对应分支的代码: git clone -b mygj git@gitlab.xnhd.com:x/openAPI.git ##拉取git@gitlab.xnhd.com:x/openAPI.git版本库的mygj分支代码!
git show-ref --heads :
从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。
git push origin test:master #提交本地的test分支作为远程master的分支
git push origin test:test #提交本地的test分支作为远程的test分支
如何删除远程分支?类似于创建,如果左边为空,那么就会删除 ':'右边的分支!
git push origin :test #这刚刚提交的远程test将会被删除!但是本地还是会保存的!
3:版本操作相关指令
查看版本:git tag
创建版本:git tag 【name】
删除版本:git tag -d 【name】
查看远程版本:git tag -r
创建远程版本:git push origin 【name】 #首次推送的时候记得加上 -u 参数
删除远程版本:git push origin :refs/tags/【name】
4:子模块的相关指令
添加子模块: git submodule add [url] [path]
例: git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模块: git submodule init # 只在首次检出仓库时运行一次就行
更新子模块: git submodule update # 每次更新或切换分支后都需要运行一下
删除子模块:四步走:
1)$ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
5:忽略一些文件、文件夹不提交
在仓库根目录下创建名为'.gitignore'的文件,写入不需要的文件或文件夹名,每个元素占一行即可:
target
bin
*.db
以上,共勉!