git常用命令
日常使用建议使用sourcetree代替,许多高级操作还是命令更加顺手
一、创建远程仓库
- 如果想要把自己的代码上传到码云(github)怎么办,我们得建一个远程仓库,远程仓库通俗点理解就是码云上得一个项目
- 首先在码云上创建一个项目,具体配置,用什么风格或语言根据自己而定,记住它的http地址
- 在服务器上输入 git remote 查看远程仓库(不创建肯定没),git remote add “仓库名(随便写)” https://gitee.com/xxxx/fastadmin-test.git(刚才你复制的地址)
- 创建ssh-key。ssh-keygen -t rsa -C “your@email.com”,把邮件地址换成你自己的邮件地址,一直回车,不用输入密码;完成后,可以在用户主目录里找到.ssh目录,内有id_rsa和id_rsa.pub两个文件, id_rsa是私钥,id_rsa.pub是公钥。
- 在项目中添加公钥
- 这时候仓库就创建好了 下面是仓库的一些操作
//(刚才你复制的地址) 克隆你远程仓库的东西到本地,
git clone https://gitee.com/xxxx/fastadmin-test.git
//git add,git commit后,git push "仓库名" "分支名" eg:
git push origin master,git push own dev
//可以通过git remote查你要删除的仓库名
git remote remove "远程仓库名" eg:git remote remove origin
git remote rename "旧名称","新名称" 仓库重命名
- 创建分支: $ git branch mybranch
- 切换分支: $ git checkout mybranch
- 创建并切换分支: $ git checkout -b mybranch
- 更新master主线上的东西到该分支上:$git rebase master
- 切换到master分支:$git checkout master
- 更新mybranch分支上的东西到master上:$git rebase mybranch
- 提交:git commit -a
- 对最近一次commit的进行修改:git commit -a –amend
- commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:git reset HEAD^
- 合并分支:
(merge from) $ git checkout master
$ git merge mybranch (merge from mybranch)
- 删除分支: $ git branch -d mybranch
- 强制删除分支: $ git branch -D mybranch
- 列出所有分支: $ git branch
- 查看各个分支最后一次提交: $ git branch -v
- 查看哪些分支合并入当前分支: $ git branch –merged
- 查看哪些分支未合并入当前分支: $ git branch –no-merged
- 更新远程库到本地: $ git fetch origin
- 推送分支: $ git push origin mybranch
- 取远程分支合并到本地: $ git merge origin/mybranch
- 取远程分支并分化一个新分支: $ git checkout -b mybranch origin/mybranch
- 删除远程分支:$ git push origin :mybranch
- rebase:
$ git checkout mybranch
$ git rebase master (rebase from master)
- 查看下本地的当前分支嘛git branch,按q退出
- 切换到dev分支上,接着跟远程的origin地址上的dev分支关联起来:git checkout -b dev origin/dev
- origin代表是一个路径,可以用
git remote -v
查看,origin/dev有点像是git@github.com:xxxxx/yyyyy.git/dev,接着在dev当前分支下进行操作,add,commit后,用git push origin dev
,意思是推送当前的dev分支到远程origin地址的dev分支上
//举例:
$ git checkout server
$ git rebase –onto master server client
$ git checkout master
$ git merge client (fostforward)
$ git rebase master server (checkout sever)
$ git merge server
$ git branch -d client
$ git branch -d server