美文网首页
git 使用手册

git 使用手册

作者: gpfworld | 来源:发表于2018-11-12 17:25 被阅读0次

    1、创建仓库

    本地目录创建仓库:git init
    远程仓库克隆:git clone
    注:默认克隆远程仓库的master分支
    克隆指定分支:git clone -b <分支名> <仓库地址>

    2、常见操作

    查看文件状态:git status
    跟踪新文件:git add <new file>
    忽略某些文件: 在仓库中加入 .gitignore文件,并把需要忽略的文件名或者目录名记录在.gitignore文件
    查看文件前后变化:git diff <file>
    ( 1. git diff filepath 工作区与暂存区比较

    1. git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较
    2. git diff --staged 或 --cached filepath 暂存区与HEAD比较
    3. git diff branchName filepath 当前分支的文件与branchName 分支的文件进行比较
    4. git diff commitId filepath 与某一次提交进行比较)
      提交更新:git commit -m "本次提交说明"
      跳过使用暂存区域:git commit -a -m "本次提交说明"
      从仓库移除文件:git rm --cached readme.txt( 取消跟踪,仓库移除,文件还存在)
      完全移除文件:git rm <file>(完全删除,不会出现在未跟踪文件记录中)
      重命名文件:git mv README.txt README
      修改最后一次的提交:git commit --amend
      取消已经暂存的文件:git reset HEAD <file>
      取消对文件的修改:git checkout -- <file>
      本地所有修改的。没有的提交的,都返回到原来的状态 : git checkout .
      把所有没有提交的修改暂存到stash里面。可用git stash pop恢复:git stash
      返回到某个节点,不保留修改 : git reset --hard HASH
      返回到某个节点,保留修改 : git reset --soft HASH
      合并分支B merge指定文件到当前分支: git checkout B <file a> <file b> ...
      列出git跟踪文件:git ls-files
      合并指定分支到当前分支:git merge <指定分支>

    3、远程仓库的使用

    3.1仓库关联

    git可以直接在本地使用本地的仓库,但是需要和别人共同开发项目时或者想要在远程的服务器上备份时,需要 关联 远程仓库。

    • 存在远端仓库,不存在本地仓库
      git clone <仓库地址>
      直接将远程仓库clone到本地,把该远程仓库命名为origin。并会自动创建本地master分支,并和远程仓库的maser分支关联。
      将来提交合并使用git push,这是简略写法,在本地仓库和远程仓库已关联,分支已关联且同名时可以使用,否则需要指定仓库名和分支名git push <仓库名> <分支名>
    • 存在本地仓库,不存在远程仓库
      需要先新建一个远程的空仓库,并进行关联。
      仓库关联:git remote add <远程仓库在本地的名称> <远程仓库的地址>
      然后将本地内容推送到远程仓库中,git push -u <远程仓库名> <分支名>,默认远程仓库中存在要推送的分支,否则需要加--set-upstream参数,详见第4小节。-u只在第一次推送时需要加,以后不需要,目的是进行分支的关联,将本地的分支和远程的分支关联。
    • 远程仓库和本地仓库均不存在
      可以先新建远程库,然后clone。也可以分别创建再关联,当然前者更加简单。

    3.2常见远程库操作

    查看当前项目关联了那些远程库:git remote <-v>
    远程仓库抓取数据:git fetch <远程仓库名>
    推送数据:git push <仓库名> <分支名>
    拉取数据:git pull <仓库名> <分支名>
    查看远程仓库信息:git remote show <远程仓库名>
    远程仓库删除:git remote rm <远程仓库名>(只是删除关联)
    远程仓库重命名:git remote rename <远程仓库名> <新的远程仓库名>

    4、本地分支与远程分支关联

    转自原文地址http://blog.csdn.net/cherishhere/article/details/52606884

    文章要记录的笔记是:
    一、如何把本地新建分支同步到远程分支上(注:该分支在远程上没有)?
    二、又如何在本地把远程分支上新建分支同步到本地(本地没有该分支)?

    1.其实在从远程分支分出来的分支都是跟踪分支(track),当对该分支进行push和pull时,如果该分支和远程分支同名git会知道推送到远程哪个分支,从哪个远程分支同步到本地分支。其实每次克隆一个仓库时,本地新建一个master分支来track远程origin/master。如果不同名,我们需要人为指定git push origin branch_name

    2.如果本地新建了一个分支branch_name,但是在远程没有,这时候push和pull指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用git push --set-upstream origin branch_name,这样就可以自动在远程创建一个branch_name分支,然后本地分支会track该分支。后面再对该分支使用push和pull就自动同步。无需再指定分支。

    3.跟踪远程分支
    1)如果远程新建了一个分支,本地没有该分支,可以用git checkout --track origin/branch_name,这时候本地会新建一个分支名叫branch_name,会自动跟踪远程的同名分支branch_name。
    2)用上面中方法,得到的分支名永远和远程的分支名一样,如果想新建一个本地分支不同名字,同时跟踪一个远程分支可以利用。
    git checkout -b new_branch_name branch_name,这条指令本来是根据一个branch_name分支分出一个本地分支new_branch_name,但是如果所根据的分支branch_name是一个远程分支名,那么本地的分支会自动的track远程分支。建议跟踪分支和被跟踪远程分支同名。

    总结:一般我们就用git push --set-upstream origin branch_name来在远程创建一个与本地branch_name同名的分支并跟踪;利用git checkout --track origin/branch_name来在本地创建一个与branch_name同名分支跟踪远程分支。

    5、版本

    查看提交历史:git log
    回退到上一个版本:git reset --hard HEAD^
    回退到指定版本:git reset --hard <版本号>
    查看历史执行命令:git reflog

    6、配置

    参考
    https://www.jianshu.com/p/1ae2ff6c90de

    相关文章

      网友评论

          本文标题:git 使用手册

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