初始Git常用相关命令

作者: 清枫_小天 | 来源:发表于2016-07-10 00:23 被阅读471次

    初始Git常用相关命令

    下载Git
    国内镜像
    “Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

    安装完成后,还需要最后一步设置,在命令行输入:

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com" 
    
    1. 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录

      $ mkdir learngit
      $ cd learngit
      $ pwd //pwd命令用于显示当前目录

    2. git init //把这个目录变成Git可以管理的仓库(当前目录下多了一个.git的目录,默认是隐藏)

    3. 假设我们现在有一个readme.txt(一定要放在git仓库目录下learngit)文件并有相应的内容

    • git add 用命令 告诉Git,把文件添加到仓库 eg:git add readme.txt
    • git commit用命令告诉Git,把文件提交到仓库:eg:git commit -m "wrote a readme file"(-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。)
    1. git status命令看看结果
    2. git diff这个命令看看修改的结果 eg:git diff readme.txt
    3. git log命令查看修改的历史纪录,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline 参数。eg:git log --pretty=oneline,在这里你看到的一大串类似3628164...882e1e0的是commit id(版本号)
    4. git reset命令回退版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个eg:git reset --hard HEAD^
    • $ git reset --hard 3628164指定回到未来的某个版本3628164这个是不全的commit ID。会自己帮我们找
    1. git reflog用来记录你的每一次命令
    2. git checkout -- file可以丢弃工作区的修改(工作区指还未add前,add之后,commit之前叫暂存区)。eg:git checkout -- readme.txt
    • . 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    1. 撤销修改git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:eg:git reset HEAD readme.txt
    2. 删除文件 rm test.txt
      这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)
    • 现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit.eg:git rm test.txt 然后 git commit -m "remove test.txt"文件就从版本库中被删除了
    • 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本git checkout -- test.txt

    1. 创建SSH Keyssh-keygen -t rsa -C "youremail@example.com"然后一路回车,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,
    2. 在GitHub上新建这个learngit仓库。git remote add origin git@github.com:HappyXiaoTian/learngit.git添加后,远程库的名字就是origin
    3. git push命令,把本地库的内容推送到远程,实际上是把当前分支master推送到远程.eg:git push -u origin master
    4. git push origin master只要本地作了提交,就可以通过以上命令
    5. 从远程库克隆登陆GitHub,创建一个新的仓库,名字叫gitskills。git clone克隆一个本地库eg:git clone git@github.com:HappyXiaoTian/gitskills.git

    分支

    1. git checkout -b dev我们创建dev分支,然后切换到dev分支。相当于如下两行命令:
      • $ git branch dev
      • $ git checkout dev
    1. git branch命令查看当前分支
    2. git merge命令用于合并指定分支到当前分支eg:git merge dev(假设当前分支是master,就是将dev分支合并到master分支)
    3. git branch -d dev删除dev分支
    4. git merge --no-ff -m "merge with no-ff" dev准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward
    5. git stash把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    6. git stash list命令看看刚才的工作现场存到哪去了
    7. Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
    • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

    • 另一种方式是用git stash pop,恢复的同时把stash内容也删了:

    1. git branch -d feature-vulcanfeature-vulcan分支还是必须就地销毁git branch -D feature-vulcan强行删除
    2. git push origin master推送master分支

    标签

    1. git tag <name>就可以打一个新标签eg:git tag v1.0
    2. git tag查看所有标签
    3. git log --pretty=oneline --abbrev-commit找到历史提交的commit id
    4. git tag v0.9 6224937对指定commit id是6224937打上标签
    5. git tag -a v0.1 -m "version 0.1 released" 3628164创建带有说明的标签,用-a指定标签名,-m指定说明文字
    6. git show <tagname>可以看到说明文字eg:git show v0.1
    7. git tag -s v0.2 -m "signed version 0.2 released" fec145a签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错
    8. git tag -d v0.1标签打错了,删除
    9. git push origin <tagname>推送某个标签到远程eg:git push origin v1.0git push origin --tags一次性推送全部尚未推送到远程的本地标签
    10. git push origin :refs/tags/<tagname>可以删除一个远程标签(先删除本地的:git tag -d v0.9) eg:git push origin :refs/tags/v0.9

    相关文章

      网友评论

        本文标题:初始Git常用相关命令

        本文链接:https://www.haomeiwen.com/subject/vshdjttx.html