git and github学习笔记

1.git的状态分为working status,stage status和commit status。git diff查看的是working status和 stage status之间的不同,git diff --cached查看的是stage status和commit status之间的不同,git diff HEAD 查看的是当前working status和最近一次commit的commit status的不同。

2.使用git log命令可以按时间从近到远的顺序查看每次的commit记录。所显示的信息包括一串hash码,提交者姓名和Email和commit comments。如果要简化显示内容,我们可以输入git log --oneline命令,这样就会只显示 hash码和commit comments,而且显示在同一行中。

3.我们可以在命令行使用 git reset --hard <commit ID号> 或者 git reset --hard HEAD来进行回退。

4.可以使用git rm filename来删除working status中的文件。如果想删除文件夹,可以通过cd dirname,然后输入git rm -r . 命令删除整个文件夹,最后cd ..回到上一层来git commit。

5  git add -A #stages All

  git add .   #stages new and modified, without deleted

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

6.git rm from_filename to_filename意为给文件重命名,这一条指令相当于执行了mv from_filename to_filename,rm from_filename,和git add to_filename三条指令。

7.一个 .gitignore 例子。

    # 此为注释 – 将被 Git 忽略 
    # 忽略所有 .a 结尾的文件
    *.a  
    
# 但 lib.a 除外 
    !lib.a
    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO  
    /TODO
    
# 忽略 build/ 目录下的所有文件
    build/
    # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt 
    doc/*.txt

8.git checkout develop表示切换到develop分支。git checkout -- filename表示丢弃在working status的所有修改或者放弃删除某文件,回到上一次commit时候的文件状态。
9.git pull 相当于git fetch 和git merge的合并。在使用时尽量用gi fetch,然后对比更新情况,再手动合并。
例如
git fetch origin develop:tmp
git diff tmp 
git merge tmp
从远程的develop分支下载代码并新建tmp分支,然后对比本地所在分支与tmp分支的区别,最后进行合并。

   10.git branch -r查看远程库的分支情况。git remote -v查看远程库的URL和名称。

  11.git push origin :branch_you_want_to_delete   其中origin和冒号之间有空格,表示用本地的空分支取代远程分支,也就是达到了删除远程分支的目的。

       git push origin test:master         // 提交本地test分支 作为 远程的master分支
       git push origin test:test              // 提交本地test分支作为远程的test分支

posted on 2015-05-24 00:39  stackhacks  阅读(189)  评论(0编辑  收藏  举报

导航