git使用一部分

来源:互联网 发布:淘宝店客户具体地址 编辑:程序博客网 时间:2024/06/06 02:31

创建分支: $ 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 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



git将一个分支的代码提交到另一个分支上:
1:全部merge:
git merge --no-ff 将要merge到的分支名


2:根据某个提交点merge
git cherry-pick 提交的id
注:提交之后有冲突直接解冲突之后,git add --all --> git commit --> git push origin HEAD:refs/for/dev
提交之后没有冲突直接,git push origin HEAD:refs/for/dev




一、git移动文件:
git mv file_from file_to
运行git status的时候可以看到关键信息:renamed: file_from -> file_to
相当于运行了:
mv file_from file_to
git rm file_from
git add file_to




二、查看提交历史
1、git log会按提交的时间列出所有的更新,最近的更新排在最上面。
2、git log -p -2 :这里-p选项展开显示每次提交的内容差异,用-2则仅显示最近的两次更新。
3、git log --status : 仅显示简要的增改行数统计。
4、git log --pretty=oneline :--pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历
   史,oneline 将提交的信息在一行显示。short,full,fuller等待验证。
5、git log --pretty=format:"%h - %an, %ar : %s" : 定制要显示的记录格式,这样的输出便于后期编程提取分析。
   常用的占位符写法及其代表的意义。
   选项   说明
   %H     提交对象(commit)的完整哈希字串
   %h     提交对象的简短哈希字串
   %T     树对象(tree)的完整哈希字串
   %t     树对象的简短哈希字串
   %P     父对象(parent)的完整哈希字串
   %p     父对象的简短哈希字串
   %an    作者(author)的名字
   %ae    作者的电子邮件地址
   %ad    作者修订日期(可以用-date= 选项定制格式)
   %ar    作者修订日期,按多久以前的方式显示
   %cn    提交者(committer)的名字
   %ce    提交者的电子邮件地址
   %cd    提交日期
   %cr    提交日期,按多久以前的方式显示
   %s     提交说明




补充:git log命令支持的常用选项及其释义
选项            说明
-p              按补丁格式显示每个更新之间的差异。
--stat          显示每次更新的文件修改统计信息。
--shortstat     只显示--stat 中最后的行数修改添加移除统计。
--name-only     仅在提交信息后显示已修改的文件清单。
--name-status   显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示SHA-1 的前几个字符,而非所有的40个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph         显示ASCII 图形表示的分支合并历史。
--pretty        使用其他格式显示历史提交信息。可用的选项包括oneline,short,full,fuller 和format(后跟指
定格式)。




三、修改最后一次提交:
 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了,想要撤销刚才的提交操作,可以使用--amend选项重新提交:
1、如果提交信息错误,执行命令后会启动文本编辑器,会看到上次提交的说明,编辑它确认没有问题后保存退出,就会
使用新的提交说明覆盖刚才失误的提交。
2、如果刚才提交忘了暂存某些修改,可以补上暂存操作,然后再运行--amend提交:
git commit -m 'initial commit'
git add forgotten_file
git commit --amend


四、查看当前的远程库
1、git remote :远程库的简短名称
2、git remote -v :显示对应的远程库的克隆地址


五、设置命令别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status


六、查看各个分支最后一次的提交信息
git branch -v




git拉取远程分支代码到本地分支(拉取并新建)
git checkout -b infinix origin/infinix




git add 执行之后想回退到之前没有提交的状态一用:
:git reset HEAD test.txt




git reset --rebase --hard HEAD^1 :将最前面提交的节点回退掉(保留本地修改的情况)
git reset --hard HEAD^1 :将最前面提交的节点回退掉




如果提交的时候有删除的文件,那么commit的时候要这样写:
git commit -a -m “msg”


如果想回退到之前修改代码的节点通过以下操作:
1、git log  :查看commit的信息 显示如下
*****************************************************
shimeng.li@RLK-F0693-LSM /d/push/RlkAccount (tecno-itel)
$ git log
commit 71dc2f3997fd4604ff67fe217b4d53659c07e818
Author: shimeng.li <shimeng.li@reallytek.com>
Date:   Wed Oct 19 11:32:33 2016 +0800


    BUG ID:none
    Description:添加第三方facebook登录


commit e0c4bf481fb00d72c909c92bf21ddfcdf3300e4a
Author: shimeng.li <shimeng.li@reallytek.com>
Date:   Thu Oct 13 14:40:31 2016 +0800


    BUG ID:45429
    Description:个人信息界面设置栏箭头方向显示不对


*******************************************************
2、git checkout e0c4bf481fb00d72c909c92bf21ddfcdf3300e4a
   每一个提交相当于一个分支,切换到后面一个分支去 显示如下
*****************************************************
shimeng.li@RLK-F0693-LSM /d/push/RlkAccount (tecno-itel)
$ git checkout e0c4bf481fb00d72c909c92bf21ddfcdf3300e4a
Note: checking out 'e0c4bf481fb00d72c909c92bf21ddfcdf3300e4a'.


You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.


If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:


  git checkout -b new_branch_name


HEAD is now at e0c4bf4... BUG ID:45429 Description:个人信息界面设置栏箭头方向显
示不对
*********************************************************************
3、git checkout tecno-itel
切换回最新的提交






*********************************
当已经有一次commit 但是没有push到远程的时候,
需要向这个commit里面追加修改的内容用:
git commit --amend




*********************************
提交代码之后,拉取最新的代码,如果有冲突,先解决冲突,


然后:1.git add .
      2.git rebase --continue
完成之后如果提交的要推送到远程,那就:git push origin master
如果不要了,想回退到提交之前的代码,那就:git reset head~1

原创粉丝点击