配置id_rsa.pub:执行 ssh-keygen -t rsa -C "grant.bai@qq.com" 将id_rsa.pub保存到 ~/.ssh目录。将其中内容贴到git coding平台ssh公钥里。
git init //新建一个文件夹,然后初始化git
git remote add origin git@gitlab.xxx/datacenter.git //添加一个Origin
git fetch
创建本地分支:git branch dev 报错:fatal: Not a valid object name: 'master'.
如果本地没有文件,添加一个文件,eg: readme.txt
git add .添加所有项目文件到本地仓库缓存
git commit -m "init commit"提交到本地仓库.(之后就可以随心所欲地创建或切换分支了)
执行拉取分支命令,
//git checkout -b dev(这个是我本地文件夹) origin/dev(这个是远程分支分支名)
git checkout -b dev origin/dev
报错:fatal: A branch named 'dev' already exists.
删除刚创建的分支:
git branch -d dev
重新拉取分支:
git checkout -b dev origin/dev
查看远程分支
git branch -a
查看本地分支
git branch
切换分支
//切换回master分支
git checkout master
//切换回dev分支
git checkout dev
查看当前分支所属
git branch -vv
获取当前分支名
git symbolic-ref --short -q HEAD
查看当前分支所有提交者及其提交次数,按次数由高到低排序
git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nr
推送代码到分支
git push -u origin master
添加提交代码
#添加本地需要上传的文件夹(代码文件添加方式 git add 文件.js)
git add db
提交信息
git commit -m '提交文档到test分支上'
推送代码分支
git push -u origin dev:dev
查看当前的origin
git remote -v
五步走:分支创建 -> 切换 -> 提交 -> 合并 -> 删除
1.先创建一个新分支提交改动
$ git branch newbranch
然后输入这条命令检查是否创建成功
$ git branch
这时终端输出
newbranch
* master
这样就创建成功了,前面的*代表的是当前你所在的工作分支。我们接下来就要切换工作分支。
$ git checkout newbranch
注:也可以使用下面的命令,相等于上面的两部;
$ git checkout -b newbranch
这样就切换完了,可以 $ git branch 确认下。然后你要将你的改动提交到新的分支上。
$ git add .
$ git commit -a
此时可以 $ git status 检查下提交情况。如果提交成功,我们接下来就要回主分支了,代码和之前一样。
$ git checkout master
然后我们要将新分支提交的改动合并到主分支上
$ git merge newbranch
合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。下面的代码可以查看产生冲突的文件,然后做对应的修改再提交一次就可以了。
$ git diff
我们的问题就解决了,接下来就可以push代码了。
$ git push -u origin master
新建分支的朋友别忘了删除这个分支,不放心的话可以git branch查看下。
$ git branch -D newbranch
如果想保留分支只是想删除已经合并的部分只要把大写的D改成小写的d就行了。
Git常用操作命令收集:
1) 远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push[name][newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。
$ git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
4) 子模块(submodule)相关操作命令
添加子模块:$ 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 ----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1)$ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db