zoukankan      html  css  js  c++  java
  • git命令小结

    Git版本库规范

    不要提交垃圾文件。

    • 包括临时文件,编译产生的二进制文件,个人设置文件,与项目无关的文件等等。
    • 使用.gitignore文件来告诉git哪些文件应该忽略掉。

    不要提交不能编译运行的代码到master分支。

    • 平时创建临时分支来工作,可以随时提交,当告一段落之后再合并到master分支。
    • 保证master分支的代码是可运行的,不影响其他团队成员。

    善用本地分支。

    • 特性分支:可以每开始一个新功能或bugfix时就创建一个新分支,改完后合并到master。比如:newidea/issue90
    • 每个新版本也要用一个新分支,这样如果需要改老版本的bug,那么可以很轻松地切换到老分支,改完后再切回新分支。
    • 长期分支:大型项目中,用分支管理不同层次的稳定性,master/develop;

    远程分支

    • 推送本地分支,与他人共同开发,比如多人协同中需要用到的特性分支。eg: git push origin feature_xxx;
    • git checkout -b git_doc;#创建本地分支
    • git push origin git_doc;#分享到远程仓库
    • git fetch origin;#获取远程仓库的所有信息
    • git checkout -t origin/git_doc;# 其他开发人员基于origin/git_doc创建本地分支
    • git branch --set-upstream git_doc origin/git_doc;# make an existing local branch to track a remote branch;为本地分支建立远程跟踪
    • git pull;获取远程仓库的信息,并自动合并
    • git checkout master;切换分支到主干
    • git merge origin/git_doc
    • git push origin master
    • git push origin :git_doc;# 删除远程分支
    • git branch -d git_doc;# 删除本地分支

    多提交,及时提交。

    • 每当改动达到可以用一句话描述的时候,就提交。

    给每个准备提交上线的版本打tag。

    • 命名成v1.0.0_rc1这种格式,第一次提交就是rc1,第二次提交就是rc2等等。

    写清楚提交注释。

    • 写明做了哪些修改,不要用笼统的一句话例如“改bug”,而是要写具体的说明例如,“按钮文字从转发改成分享”。

    Ubuntu下配置gitlab

    1. 创建ssh key
      ssh-keygen -t rsa -C "xxx"

    2. 添加帐号
      ssh-add ~/.ssh/id_rsa

    3. 向gitlab添加key
      复制 ~/.ssh/id_rsa.pub 的内容 到:http://xxx.com/keys

    4. 获取kelude代码
      git clone git@xxx.com.xxx.git

    Git常用命令

    纳入版本控制

    • git status // 查看改动点
    • git diff
    • git add *.txt //添加所有txt文件
    • git add README //添加单个文件
    • git add . //添加所有文件包括子目录,但不包括空目录
    • git add -f xxfile //强制添加一个文件,忽略掉.gitignore中的配置

    提交代码(本地仓库)

    • git commit -m “initial project version”
    • git commit -m “something” someFile //提交指定文件
    • git commit -C HEAD -a --amend //复用HEAD留言,增补提交(修改小错误,而不增加提交记录,掩盖自己的小马虎)

    推送到远程仓库

    • git pull origin master //把远程仓库的master分支 合并到当前分支
    • git push origin master //推送到远程仓库的master分支

    放弃本地的修改

    • 放弃未一个 没有添加到 版本控制的文件修改
      git checkout -- file/path

    • 放弃添加到版本控制
      git reset --hard file

    • 从仓库中删除文件
      git rm -r file/path

    • 放弃所有未提交的修改
      git reset --hard HEAD

    • 放弃最近x次的commit
      git reset --hard HEAD~1 //放弃最近一次的commit
      git reset --hard HEAD~2 //放弃最近两次的commit

    解决合并冲突

    • 备份需要保留的本地文件

    • 丢弃本地所有修改 及 提交记录(与下面的命令配合使用)
      git fetch origin // 获取远程仓库的所有分支、所有信息
      git reset --hard origin/master // 重置为 origin master

    • 把备份的文件合并回来

    • 提交修改

    远程分支

    • 推送本地分支,与他人共同开发,比如多人协同中需要用到的特性分支
      比如: git push origin feature_xxx;
      git branch //查看当前分支
      git checkout -b git_doc;#创建本地分支
      git push origin git_doc;#分享到远程仓库
      git checkout -t origin/git_doc;# 其他开发人员 获取origin/git_doc 分支,并创建本地分支
      git pull origin git_doc;#合并远程仓库的git_doc分支 到本地开发分支

    • 合并git_doc分支到master分支
      git checkout master;切换到master分支
      git fetch origin // 获取远程仓库的所有分支、所有信息
      git merge origin/git_doc;# 合并git_doc到master
      或者
      git pull origin git_doc;# 合并远程仓库的git_doc到当前分支
      最后
      git push origin master;# 推送到远程仓库master

    • 不再需要的分支 应该删除
      git branch -d git_doc;# 删除本地分支
      git push origin :git_doc;# 删除远程分支

    推送数据(中央仓库)

    • git push [remote-name] [branch-name] //默认为 git push origin master
    • git push origin master //推送到远程仓库的 master分支
    • git push origin :branch_name //这个语法用于删除,只要把分号前留空

    问责:谁修改了代码

    • git blame hello.html //你也可以用"-L"参数在命令(blame)中指定开始和结束行:
    • git blame -L 12,+10 hello.html //12到22行

    归档版本库,导出压缩包

    • 命令格式:git archive --format=格式 --prefix=目录/ 版本>压缩包.zip
    • git archive --format=zip head>test.zip
    • git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip>mysite-1.0.tar.gz
    • git archive --format=zip --prefix=mysite-1.0/ 1.0 >mysie-1.0.zip

    本文转自:http://xuantan.iteye.com/blog/1724574

  • 相关阅读:
    python解压缩rar,zip文件的正确姿势
    tensorflow1.x及tensorflow2.x不同版本实现验证码识别
    qt5.6.3下使用firebird
    Python3.6下的Requests登录及利用Cookies登录
    c++实现全密码生成
    android中利用HttpURLConnection进行Get、Post和Session读取页面。
    Freebsd10.3 Nginx多版本PHP
    Freebsd10.3(FreeBSD11 Beta1)使用手记
    Eclipse导入的User Libarary
    MySQL zip版本安装
  • 原文地址:https://www.cnblogs.com/songshu120/p/5177119.html
Copyright © 2011-2022 走看看