git使用笔记

git使用笔记
==================================================
//建立目录
mkdir paper-slider
cd paper-slider
//初始化 git
git init
//设置 git 用户名 邮箱地址(通常应该跟github注册邮箱一致)
http://gitref.org/zh/

//全局设置
git config --global user.name "yourname"
git config --global user.email "your-email-address"
//也可以给当前repo 单独设置
git config user.name "yourname"
git config user.email "your-email-address"


git add readme.md
git commit -m 'init'
git remote add origin https://github.com/zxdong262/paper-slider.git
git push -u origin master

 

git add -A stages All

  • git add . stages new and modified, without deleted

  • git add -u stages modified and deleted, without new


    //然后输入用户名密码
    git diff #尚未缓存的改动
    $ git status -s查看你的文件在工作目录与缓存的状态
    ====================================================
    tag管理(发行版本):
    如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。 该 tag 命令基本上会给该特殊提交打上永久的书签,从而使你在将来能够用它与其他提交比较。
    $ git tag -a v1.0 
    $ git push –-tags共享标签

    删除tag这么用

    git push origin --delete tag <tagname>


    ========================================================
    使用 git fetch 更新你的项目,使用 git push 分享你的改动。 你可以用 git remote 管理你的远程仓库。
    git remote add 为你的项目添加一个新的远端仓库
    如果你希望分享一个本地创建的仓库,或者你想要获取别人的仓库中的贡献 —— 如果你想要以任何方式与一个新仓库沟通,最简单的方式通常就是把它添加为一个远端仓库。 执行 git remote add [alias] [url] 就可以。 此命令将 [url] 以 [alias] 的别名添加为本地的远端仓库。


    git pull 从远端仓库提取数据并尝试合并到当前分支
    git pull --rebase,这里表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把本地当前分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到本地当前分支上。
    ===============================
    git log 过滤你的提交历史记录
    git diff 
    最后,要查看两个提交快照的绝对改动,你可以用 git diff 命令。 这在两个主要情况中广为使用 —— 查看两个分支彼此之间的差值,和查看自发布或者某个旧历史点之后都有啥变了。让我们看看这俩情况
    $ git diff v0.9

    ===========分支=================
    git branch (branchname) 来创建分支, 使用 git checkout (branchname) 命令切换到该分支,在该分支的上下文环境中, 提交快照等,之后可以很容易地来回切换。
    git branch -d (branchname) 删除分支
    一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用 git merge 命令将任何分支合并到当前分支中去。 我们那上例中的“removals”分支为例。假设我们创建了一个分支,移除了一些文件,并将它提交到该分支, 其实该分支是与我们的主分支(也就是“master”)独立开来的。 要想将这些移除操作包含在主分支中,你可以将“removals”分支合并回去。

    git checkout -b 创建并切换到分支

    删除远程分支
    git push origin :develop

    =========================================
    还原为上一个提交的版本
    git rebase -i HEAD~2

    git push origin +master

    将本地的状态回退到和远程的一样  
    git reset –hard origin/master
    ================================================
    

    git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:

    1. 找一个干净目录,假设是git_work 2. cd git_work 3. git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录 4. cd project 5. git branch -a,列出所有分支名称如下: remotes/origin/dev remotes/origin/release 6. git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支 7. git checkout -b release origin/release,作用参见上一步解释 8. git checkout dev,切换回dev分支,并开始开发。 ============================================= git stash保存工作现场 1.使用gitstash保存当前的工作现场,那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交。 2.如果一个使用了一个git stash,切换到一个分支,且在该分支上的工作未完成也需要保存它的工作现场。再使用gitstash。那么stash 队列中就有了两个工作现场。 3.可以使用git stash list。查看stash队列。 4.如果在一个分支上想要恢复某一个工作现场怎么办:先用git stashlist查看stash队列。确定要恢复哪个工作现场到当前分支。然后用git stash pop stash@{num}。num就是你要恢复的工作现场的编号。 5.如果想要清空stash队列则使用git stash clear。 6.同时注意使用git stashpop命令是恢复stash队列中的stash@{0}即最上层的那个工作现场。而且使用pop命令恢复的工作现场,其对应的stash在队列中删除。使用git stash apply stash@{num}方法除了不在stash队列删除外其他和git stashpop 完全一样。 

    ===============================================
  • 撤销操作

    修改最后一次提交

    有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交:

    $ git commit --amend
    

    此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。

    启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。

    如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend 提交:

    $ git commit -m 'initial commit'
    $ git add forgotten_file
    $ git commit --amend
    

    上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

    取消已经暂存的文件

    接下来的两个小节将演示如何取消暂存区域中的文件,以及如何取消工作目录中已修改的文件。不用担心,查看文件状态的时候就提示了该如何撤消,所以不需要死记硬背。来看下面的例子,有两个修改过的文件,我们想要分开提交,但不小心用 git add . 全加到了暂存区域。该如何撤消暂存其中的一个文件呢?其实,git status 的命令输出已经告诉了我们该怎么做:

    $ git add .
    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            modified:   README.txt
            modified:   benchmarks.rb
    

    就在 “Changes to be committed” 下面,括号中有提示,可以使用 git reset HEAD <file>... 的方式取消暂存。好吧,我们来试试取消暂存 benchmarks.rb 文件:

    $ git reset HEAD benchmarks.rb
    Unstaged changes after reset:
    M       benchmarks.rb
    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            modified:   README.txt
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            modified:   benchmarks.rb
    

    这条命令看起来有些古怪,先别管,能用就行。现在 benchmarks.rb 文件又回到了之前已修改未暂存的状态。

    取消对文件的修改

    如果觉得刚才对 benchmarks.rb 的修改完全没有必要,该如何取消修改,回到之前的状态(也就是修改之前的版本)呢?git status 同样提示了具体的撤消方法,接着上面的例子,现在未暂存区域看起来像这样:

    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            modified:   benchmarks.rb
    

    在第二个括号中,我们看到了抛弃文件修改的命令(至少在 Git 1.6.1 以及更高版本中会这样提示,如果你还在用老版本,我们强烈建议你升级,以获取最佳的用户体验),让我们试试看:

    $ git checkout -- benchmarks.rb
    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            modified:   README.txt
    

    可以看到,该文件已经恢复到修改前的版本。你可能已经意识到了,这条命令有些危险,所有对文件的修改都没有了,因为我们刚刚把之前版本的文件复制过来重写了此文件。所以在用这条命令前,请务必确定真的不再需要保留刚才的修改。如果只是想回退版本,同时保留刚才的修改以便将来继续工作,可以用下章介绍的 stashing 和分支来处理,应该会更好些。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值