github使用记录

来源:互联网 发布:0耗材空气净化器 知乎 编辑:程序博客网 时间:2024/06/07 01:28
一、使用git前的一些配置

    1、初始化:

        $ git init

    2、配置用户名称和邮箱(如果只针对一个项目配置,需要去掉--global):

        $ git config --global user.name "dreamsqifan"

        $ git config --global user.email 2053038531@qq.com

    3、配置远程地址

        git remote add origin https://github.com/dreamsqifan/xiaoyingtong-employee.git

    4、添加远程地址登录账号(需要修改.git目录下的config文件)

        $ cd .git

        $ vim config //url = https://dreamsqifan:z327504009@github.com/dreamsqifan/xiaoyingtong-employee.git

    5、查看配置文件:

        $ git config --list

二、git基础

    1、克隆git仓库

        $ git clone https://github.com/dreamsqifan/xiaoyingtong-employee.git

    2、克隆git仓库时自定义本地仓库名称(文件夹名称):

        $ git clone https://github.com/dreamsqifan/xiaoyingtong-employee.git xiaoyingtong-employee

    3、查看文件状态

        $ git status

            // Untracked files:              未跟踪文件

            // Changes to be committed:      要提交的文件,已暂存文件

            // Changes not staged for commit:已跟踪文件的内容发生了变化,但还没有放到暂存区

        $ git status --short //更为紧凑的格式输出

            // M  README       修改过的文件前面有 M 标记

            // MM Rakefile     右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区

            // A  lib/git.rb   新添加到暂存区中的文件前面有 A 标记 

            // ?? LICENSE.txt  新添加的未跟踪文件前面有 ?? 标记

    4、跟踪新增、修改、删除的文件

        $ git add .        //针对所有,递归目录下的所有文件及文件夹

        $ git add test.php //针对某一个文件

            // git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。

    5、忽略文件

        $ vim .gitignore

    6、查看已经暂存和还未暂存的详细修改

        $ git diff //此命令比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。

        $ git diff --cached (git 1.6.1以上版本可以使用git diff --staged,效果相同) //查看已暂存的将要添加到下次提交里的内容

    7、提交暂存文件

        $ git commit -m '这是注释'

    8、跳过使用暂存区

        $ git commit -a -m '这是注释' //-a选项可以直接跳过git add操作直接提交文件

    9、移除文件

        $ git rm -f test.php

        $ git rm --cached test.php //--cached选项:从git仓库中移除,但保留在磁盘中

    10、移动文件

        $ git mv test.php test

    11、查看提交历史

        $ git log -p -2  //显示最近两次提交的内容差异

        $ git log --stat //--stat 选项在每次提交的下面列出额所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了 

        $ git log --pretty=oneline

            // 这个选项可以指定使用不同于默认格式的方式展示提交历史,这个选项有一些内建的子选项供你使用

            //比如用 oneline 将每个提交放在一行显示,查看的提交数很大时非常有用,另外还有 short,full 和 fuller 可以用

        $ git log --pretty=format:"%h - %an, %ar : %s" //定制要显示的记录格式http://blog.sina.com.cn/s/blog_601f224a01012wat.html

    12、撤销提交

        $ git commit --amend

            //有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交。

            //如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。

        $ git commit -m 'initial commit'

        $ git add forgotten_file

        $ git commit --amend

            //第二次提交将代替第一次提交的结果

        $ git reset --hard commit_id 回退到某个版本

    13、取消暂存的文件

        //假如修改了两个文件并且想要将它们作为两次独立的修改提交,但是却意外地输入了 git add * 暂存了它们两个。 如何只取消暂存两个中的一个呢?

        $ git reset HEAD test.php //取消暂存test.php文件

    14、撤销对文件的修改

        $ git checkout -- test.php //还原到上次提交时的样子

    15、查看远程仓库

        $ git remote     //查看远程仓库的名称,通常是origin

        $ git remote -v  //显示远程仓库的URL(读写)

    16、添加远程仓库

        $ git remote add origin https://github.com/dreamsqifan/xiaoyingtong-employee.git

    17、从仓库中拉取

        $ git fetch origin //抓取克隆(或上一次抓取)后新推送的所有文件,但是不会合并到当前工作目录

        $ git pull         //拉取远程仓库中的文件

    18、推送到远程仓库

        $ git push origin master

    19、查看远程仓库的详细信息

        $ git remote show

        $ git remote show origin

    20、远程仓库的移除和重命名

        $ git remote rename origin ori //将仓库origin重命名为ori

        $ git remote rm ori            //删除远程仓库ori

    21、列出标签

        $ git tag //显示所有标签

    22、创建标签

        Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。

        一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。

        然而,附注标签是存储在 Git 数据库中的一个完整对象。 

        它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 

        通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。

        $ git tag -a v1.4 -m 'my version 1.4' //-a:创建附注标签

        $ git show v1.4                       //查看标签信息与对应的提交信息

        $ git tag v1.4-lw                     //创建轻量标签

        $ git push origin v1.4-lw             //推送标签

        $ git push origin --tags              //--tags:将会把所有不在远程仓库服务器上的标签全部push

        $ git checkout -b version2 v2.0.0     //在version2分支上创建一个新标签

    23、创建git命令的别名

        $ git config --global alias.ci commit //使用ci来取代commit

三、git分支

    1、创建分支

        $ git branch testing           //创建一个本地分支

        $ git checkout -b testing      //创建一个本地分支并切换到该分支下 

        $ git log --oneline --decorate //--decorate:查看各个分支所指向的对象

    2、切换分支

        $ git checkout testing                       //切换到testing分支

        $ git log --oneline --decorate --graph --all //输出提交历史、各个分支的指向以及项目的分支分叉情况

    3、合并分支

        $ git merge testing //合并testing分支

    4、删除本地分支

        $ git branch -d testing //删除testing分支

        $ git branch -D testing //强制删除testing分支

    5、分支的一些管理

        $ git branch             //查看所有本地分支

        $ git branch -v          //查看每一个分支的最后一次提交

        $ git branch --merged    //查看哪些分支已经合并到当前分支

        $ git branch --no-merged //查看所有包含未合并工作的分支

    6、推送到远程分支

        $ git push origin testing:testing //把新创建的本地testing分支推送到远程仓库中

        $ git push origin testing         //将文件推送到远程testing分支上

    7、跟踪分支(相当于拉取远程仓库的分支到本地)

        $ git checkout --track origin/testing //跟踪远程仓库中的testing分支

        $ git checkout -b test origin/testing //跟踪远程仓库中的testing分支,并改名为test

        $ git branch -u origin/testing1       //修改跟踪的上游分支

        $ git branch -vv                      //查看本地分支所跟踪的分支,并会列出是否领先、落后

    8、拉取远程分支

        $ git fetch origin testing:testing //拉取远程仓库的分支到本地

    9、删除远程分支

        $ git push origin --delete testing //删除远程仓库中的testing分支

    10、存储工作

        //现在想要切换分支,但是还不想要提交之前的工作;所以储藏修改.

        //将新的储藏推送到栈上,运行 git stash 或 git stash save:

        $ git stash              //只存储跟踪的文件

        $ git stash -u           //包括存储未跟踪的文件

        $ git stash --keep-index //不要存储通过git add暂存下来的文件

        $ git stash --patch      //不会储藏所有修改过的任何东西,但是会交互式地提示哪些改动想要储藏、哪些改动需要保存在工作目录中。

    11、查看存储的工作

        $ git stash list

        //stash@{0}: WIP on master: 049d078 added the index file

        //stash@{1}: WIP on master: c264051 Revert "added file_size"

        //stash@{2}: WIP on master: 21d80a5 added number to log

    12、恢复存储的工作

        $ git stash apply stash@{2} //恢复指定的存储

        $ git stash apply           //不指定恢复哪个存储,默认恢复最近的

        $ git stash apply --index   //文件的改动被重新应用了,但是之前暂存的文件却没有重新暂存。 想要那样的话,必须使用 --index 选项来运行 git stash apply 命令

    13、删除存储

        $ git stash drop stash@{0} //删除stash@{0}存储

    14、从储藏创建一个分支

        $ git stash branch testchanges //在存储栈上传建一个分支testchanges

四、杂项:

    1、生成公钥

        $ ssh-keygen //生成公钥,id_dsa.pub公钥,id_dsa秘钥

    2、第一次向远程仓库下的某个分支推送文件时,需要运行以下命令:

        $ git push --set-upstream origin master

    3、使git忽略大小写

        $ git config core.ignorecase false

    4、放弃本地修改,直接覆盖

        $ git reset --hard

        $ git pull

五、常见问题解决办法  

    1、git status 查看状态时中文乱码  

        git config --global core.quotepath false  

    2、文件权限引起的冲突(文件显示被修改)(低版本git一般会出现此问题)     

        git config core.filemode false

原创粉丝点击