• git学习笔记


    1、初始化一个Git仓库,使用git init命令。


    2、加入文件到Git仓库,分两步:
    第一步,使用命令git add ,注意,可重复多次使用,加入多个文件;
    第二步,使用命令git commit,完毕。


    3、查看工作区的状态,使用git status命令。
    假设git status告诉你有文件被改动过,用git diff能够查看改动内容。


    4、版本号切换
    Git同意我们在版本号的历史之间切换,使用命令git reset --hard commit_id。
    切换前,用git log能够查看提交历史,以便确定要回退到哪个版本号。
    要重返未来某个版本号,用git reflog查看命令历史


    5、git add命令把要提交的全部改动放到暂存区(Stage),然后,运行git commit就能够一次性把暂存区的全部改动提交到分支。


    6、撤销改动
    1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的改动时,用命令git checkout -- file。
    2:当你不但改乱了工作区某个文件的内容,还加入到了暂存区时,想丢弃改动,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。


    7、删除文件
    git rm用于删除一个文件。假设一个文件已经被提交到版本号库,那么永远不用操心误删,可是仅仅能恢复文件到最新版本号,会丢失近期一次提交后改动的内容。


    8、远程仓库
    创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"
    关联远程仓库:git remote add origin git@github.com:andersjing/learngit.git
    把本地库的全部内容推送到远程库上:
    初次:$ git push -u origin master
    再次:$ git push origin master
    9、要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

    $ git clone git@github.com:andersjing/gitskills.git

    假设想切换到某一个子分支,能够使用:git checkout -b child_branch origin/child_branch



    10、分支管理命令:
    查看分支:git branch
    创建分支:git branch name
    切换分支:git checkout name
    创建+切换分支:git checkout -b name
    合并某分支到当前分支:git merge name
    删除分支:git branch -d name


    11、合并冲突
    当Git无法自己主动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完毕。
    用git log --graph命令能够看到分支合并图。
    --no-ff參数,禁用“Fast forward”:git merge --no-ff -m "merge with no-ff" dev


    12、保存现场
    把当前工作现场“储藏”起来,等以后恢复现场后继续工作:git stash
    查看工作现场:git stash list
    恢复现场:
    一是用git stash apply stash@{0} 恢复,可是恢复后,stash内容并不删除,需用git stash drop stash@{0} 来删除;
    还有一种方式是用git stash pop,恢复的同一时候把stash内容也删除;
    13、要丢弃一个没有被合并过的分支,能够通过git branch -D name强行删除。


    14、多人协作的工作模式:
    首先,能够试图用git push origin branch-name推送自己的改动;
    假设推送失败,则由于远程分支比你的本地更新,须要先用git pull试图合并;
    假设合并有冲突,则解决冲突,并在本地提交;
    没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    假设git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。


    15、标签
    命令git tag name用于新建一个标签,默觉得HEAD,也能够指定一个commit id;
    命令git tag查看标签;(标签不是按时间顺序列出,而是按字母排序的。)
    命令git show tagname能够看到说明文字;
    删除标签:$ git tag -d tagname;
    推送某个标签到远程:git push origin tagname;
    一次性推送所有尚未推送到远程的本地标签:git push origin --tags;
    标签已经推送到远程,要删除远程标签先从本地删除:$ git tag -d v0.9;然后从远程删除:git push origin :refs/tags/v0.9;


    16、github使用
    在GitHub上,能够随意Fork开源仓库;
    然后,从自己的账号下clone:git clone git@github.com:andersjing/bootstrap.git ;
    能够推送pull request给官方仓库来贡献代码;


    17、在Git工作区的根文件夹下创建一个.gitignore文件,把要忽略的文件名称填进去,Git就会自己主动忽略这些文件。


    18、配置快捷命令:git config --global alias.shortname ordername


    19、搭建Gitserver
    第一步,安装git:$ sudo apt-get install git
    第二步,创建一个git用户,用来执行git服务:$ sudo adduser git
    第三步,创建证书登录:收集全部须要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把全部公钥导入到/home/git/.ssh/authorized_keys文件中,一行一个。
    第四步,初始化Git仓库:先选定一个文件夹作为Git仓库,假定是/srv/sample.git,在/srv文件夹下输入命令:$ sudo git init --bare sample.git
    Git就会创建一个裸仓库,裸仓库没有工作区,由于server上的Git仓库纯粹是为了共享,所以不让用户直接登录到server上去改工作区,而且server上的Git仓库通常都以.git结尾。然后,把owner改为git:$ sudo chown -R git:git sample.git
    第五步,禁用shell登录:出于安全考虑,第二步创建的git用户不同意登录shell,这能够通过编辑/etc/passwd文件完毕。找到类似以下的一行:git:x:1001:1001:,,,:/home/git:/bin/bash
    改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    这样,git用户能够正常通过ssh使用git,但无法登录shell,由于我们为git用户指定的git-shell每次一登录就自己主动退出。
    第六步,克隆远程仓库:

    如今,能够通过git clone命令克隆远程仓库了,在各自的电脑上执行:$ git clone git@server:/srv/sample.git


    经常使用命令总结



    学习地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  • 相关阅读:
    分布式缓存
    分布式事务
    数据库系列-分库分表
    消息队列系列-简介
    JAVA系列-引用
    生产环境CPU占用过高分析
    技术书单(部分)
    GitHub的强大搜索功能简介
    VS2019 community版本下载Extension太慢解决方案
    Python2同时输出中文和变量时中文乱码
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4206096.html
Copyright © 2020-2023  润新知