Git基础

Posted dadaizi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git基础相关的知识,希望对你有一定的参考价值。

Github初始化
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@example.com"
git config --global color.ui auto -----------高亮显示
vim ~/.gitconfig -------“~/.gitconfig”
 
本地设置ssh秘钥
ssh-keygen -t rsa -C "your_email@example.com"
 
去github绑定ssh秘钥
查看本地秘钥,cat ~/.ssh/id_rsa.pub
 
web界面有一个add ssh key
 
 
绑定完成以后,可以使得本地与GitHub远程认证通信
 
ssh -T git@github.com
 
 
 
GitHub常用命令
---------------------------------------------------------------------------------
git add file_name ----将文件加入暂存区,在index数据结构中记录文件提交之前的状态
git commit -m ‘备注‘ -----进行文件提交,‘备注‘是提交信息的概述
git log ----查看提交日志
git push ----将本地file 推送到GitHub上
---------------------------------------------------------------------------------
初始化仓库
---------------------------------------------------------------------------------
git init:
mkdir another_repository --创建另外的仓库文件夹
cd another_repository      
git init --初始化仓库 
git status 查看仓库状态
git commit 记录提交的详细信息
git log --pretty=short 只显示提交信息的第一行
git log file|dir 只显示指定文件、目录的日志信息
git log -p 只显示提交所带来的改动,比如git log -p filename
git diff 查看改动前后的差别,这个是查看工作树与暂存区的差别
 
git diff HEAD 查看工作树与最新提交的差别,在执行commit之前,先执行git diff HEAD查看一下
---------------------------------------------------------------------------------
分支操作:
git branch --显示分支一览表
git checkout -b branch_name 创建一个branch_name的分支,同时也切换到了branch_name
这个分支,这个是一个命令操作两步的,也可分时进行
 
git branch branch_name ---创建branch_name分支
git checkout branch_name ---切换到branch_name分支
 
主干分支,master分支
比如刚刚切换的branch_name 分支进行了改动,
需要合并分支
 
git checkout master
git merge --no-ff branch_name (合并时加上参数-no-ff)
 
git log --graph 以图表的形式查看分支
 
---------------------------------------------------------------------------------
更改提交的操作,回溯历史版本
 
git reset --hard hash_code ----提供目标时间点的Hash值
比方说,回到了branch_name 之前的状态
git checkout -b branch_name2
git add file 做出一些改动,对file
git commit -m ‘fix b ‘
 
git reset --hard命令恢复到回溯历史前的状态
执行 git reflog 命令,查看当前仓库执行过的操作的日志
 
git checkout master 切换主干分支
git reset --hard some_one_hashcode
git merge --no-ff branc_name2
查看冲突并将其解决
解决冲突后,git add file
     git commit -m ‘some notes‘
 
---------------------------------------------------------------------------------
修改提交信息
git commit --amend 
---------------------------------------------------------------------------------
压缩历史:在合并特性分支之前,如果发现已提交的内容中有些许拼写错误等,
不妨提交一个修改,然后将这个修改包含到前一个提交之中,压缩成一
个历史记录。这是个会经常用到的技巧,让我们来实际操作体会一下。
 
git rebase -i 
 
因此,我们来更改历史。将 "Fix typo"修正的内容与之前一次的
提交合并,在历史记录中合并为一次完美的提交。
 
左侧的 pick 部分删除,改写为 fixup
 
---------------------------------------------------------------------------------
推送至远程仓库
 
远程仓库顾名思义,是与我们本地仓库相对独立的另一个仓库。
让我们先在 GitHub 上创建一个仓库,并将其设置为本地仓库的远程
仓库。
 
为防止与其他仓
库混淆,仓库名请与本地仓库保持一致。
git remote add origin remote_repository_url
git push -u origin master
 
像这样执行 git push命令,当前分支的内容就会被推送给远程仓库,origin 的 master分支。-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行 git pull命令从远程仓库获取内容时,本地仓库的这个分支就可
以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦。
 
推送至 master 以外的分支
git checkout -b feature-D
git push -u origin feature-D
---------------------------------------------------------------------------------
git clone——获取远程仓库
 
切换工作目录
git clone remote_repository_url
git branch -a 
我们用 git branch -a命令查看当前分支的相关信息。添加 -a参数可以同时显示本地仓库和远程仓库的分支信息。
 
git checkout -b feature-D origin/feature-D
 
-b 参数的后面是本地仓库中新建分支的名称。为了便于理解,我
们仍将其命名为 feature-D,让它与远程仓库的对应分支保持同名。
 
git add file
git diff
git commit -m ‘some_note‘
git push
 
---------------------------------------------------------------------------------
切回刚刚操作的分支,从远程仓库拉最新的分支
 
git pull origin feature-D 
 
---------------------------------------------------------------------------------
 
pull request:真正含义,实际是请求别人pull你的代码(把你的代码,拉到他的分支)
 
首先,fork 别人的仓库
其次,将fork的仓库进行clone到本地
再而,本地创建分支,修改
最后,push 到自己的远程仓库
在远程仓库,请求别人pull这份修改
---------------------------------------------------------------------------------

以上是关于Git基础的主要内容,如果未能解决你的问题,请参考以下文章

[Git] Git基础

git 基础命令

git基础知识汇总

Git:Git基础知识

Git系列Git基础教程(建议收藏)

git学习-git基础