Git配置使用

Git:用于本地管理仓库的软件

GitHub:一个面向开源及私有软件项目的托管平台,只支持git 作为唯一的版本库格式进行托管。

 

安装:采用官网地址安装

环境配置:添加路径到path环境变量中     安装路径/Git/bin    (该路径下须有git.exe即为正确)

 

SSH KEY公钥生成:

$ cd ~/.ssh    或 cd .ssh               //检查本机是否有ssh key设置

$ cd ~                                              //切换当前目录   保证当前路径在 “~” 下

$ ssh-keygen -t rsa -C "xxx@qq.com"    //填写邮箱

进入.ssh/目录下,打开id_rsa.pub文件,全选复制公钥内容

登录GitHub系统,添加ssh key:

头像->Settings->SSH and GPG keys->New SSH key

粘贴公钥内容,点击Add SSH key完成公钥。本地仓库关联远程库时,需要验证SSH key。

注:Git使用SSH连接,SSH连接在第一次验证GitHub服务器的Key时,需要确认GitHub的key的指纹信息是否真的来自GitHub的服务器。输入yes将GitHub的key添加到本机的信任列表中。

首先选择本地目录生成仓库:$ git init

设定该仓库账户身份:$ git config --global user.email "you@example.com"    $ git config --global user.name "Your Name"

关联远程库:$ git remote add origin git@github.com:CounterName/ProjectName.git    默认GitHub账户和SSH Key已配置好(git remote rm origin 取消远程库的关联)

git add -A  添加所有改变的文件   git add . 添加新文件和编辑过的文件不包括删除的文件   git add -u 添加编辑或删除的文件,不包括新添加的文件

 

$ git branch -r   查看远程仓库的所有分支

$ git clone origin  git@github.com:xxx/sss.git gitfile    在当前目录下 创建gitfile 克隆远程仓库到该文件夹下    注意其已经建立了本地分支与远程库的联系

 

 

Git命令示例:

$ mkdir learngit                //在当前目录下创建文件夹

$ cd learngit                     //进入当前目录下的learngit文件夹

$ pwd                                //显示当前目录路径

$ git  init                            //将当前目录(文件夹)初始化为新仓库(路径)

$ git clone git://github.com/name/test.git   //克隆该url的test.git仓库  会拉取项目历史的所有数据(每个文件的每个版本)

$ git clone git://github.com/name/test.git   mytest  //在当前目录下创建mytest目录,用于保存克隆的数据

$ git config --global user.name "name"  //配置个人信息  --global 表示以后所有项目都默认使用这里的配置信息  去掉--global 表示 新的设定保存在当前项目的.git/config文件里

$ git config --global user.email "1@qq.com"  // Git为每一个提交都记录你的名字与电子邮箱,所以提交前需要配置个人信息

$ git config --list   //查看自己电脑的git的全局配置

$ git add read.txt             //添加文件到仓库暂存区

$ git commit -m "note information"      //提交暂存区所有文件到仓库分支

$ git log --pretty=oneline                        //显示提交的日志记录

$ git log --name-status                        //显示每次提交对应的文件改动

$ git log --author yourname                        //可控选项  筛选出某个人的改动日志

$ git log -p filePath                        //可控选项  筛选出某个文件的改动日志

$ git log --grep keywords                        //可控选项  从提交的关键字中抓取匹配的commit项

$ git blame filePath                       //显示某个文件的每行信息的改动日志,查找出该行修改的作者 提交日期等

$ git reset --hard HEAD^^                      //回退版本   HEAD代表当前版本 ^代表上个版本   HEAD~10 代表上10个版本   --hard 323523523..  回退版本号前缀为323523523

$ git reflog                      //查看命令历史记录

$ git status                    //查看状态(暂存区、版本库)

$ git checkout -- file     //回退文件状态(上一次git add或git commit时的状态)

$ git rm readme.txt      //删除文件(需要commit  同步到版本库)

$ git echo ‘runoob.com’ > test.txt  //创建或覆盖文件内容

$ git remote add origin git@github.com:gitname/Unity.git       //gitname账户名  关联远程库(关联需要远程库具备本地SSH Key公钥)

远程库的别名[alias]就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。可以添加多个远程库

 

$ git rm <file> 仅删除工作目录中的文件

$ git rm -f <file> 强制删除 可以删除之前修改过且放到暂存区域的文件

$ git rm --cached <file> 把文件从暂存区域移除,但工作区仍保留

 

重点:分支管理

$ git remote         //查看远程仓库  添加 -v 参数查看别名的实际链接地址

$ git branch         //列出分支

$ git branch (branceName)  //创建分支

$ git branch -d (branceName) //删除分支

$ git remote rm [alias]    //删除远程仓库

$ git checkout (branceName) //切换分支

$ git checkout -b newtest //创建新分支且切换到该分支

$ git merge newtest        //合并分支到主分支  合并冲突需要手动修改并添加、提交

$ git diff   //查看git status的详细信息  显示区别--已写入缓存与已修改但尚未写入缓存的改动

 

提取远程仓库的更新:git fetch 、git merge

 

$ git fetch [alias] //从远程库下载新分支与数据 需要git merge远程分支到你所在的分支

$ git merge [alias]/[branch] //从远程库提取数据幷尝试合并到当前分支

 

注:merge后一个参数,表示合并到本地主分支,其使用Fast forward模式,该模式下,删除分支后,会丢掉分支信息

 

   添加--no-ff参数会强制禁用该模式,同时merge时会生成一个新的commit(保存分支信息),为此需要-m为commit添加注释

示例:$ git merge --no-ff -m "merge with no-ff" dev

推送到远程仓库:

 

 

$ git push [alias][branch] 将你的[branch]分支推送成为[alias]远程仓库上的[branch]分支

$ git push -u origin master      //推送分支 master 到远程库 origin     名字都可以变化  -u 代表将分支与远程库关联  简化命令

 

Bug分支:

 

每一个bug都可以通过一个新的临时分支来修复,修复后合并分支幷删除临时分支。

若当前分支上的任务未完成,现需要紧急新建Bug分支。此时需要保存当前工作现场,从其它分支中新建Bug分支

$ git stash 保存当前工作现场  就可以切换到其他分支上了

$ git stash list 回到原先分支上 查看工作现场

$ git stash apply 恢复工作现场

 

 

 

错误描述:git push origin master后报错failed to push some refs to ...

原因:远程库有本地库未拉取的文件(常见README.md未同步)

方法:git pull --rebase origin master

 

$ git commit --amend        修改最后一次提交的注释信息

 

 

扩展:

     创建 .gitignore 文件忽略跟踪某些文件

# 此为注释
#忽视所有.a结尾的文件
*.a 
#但除 lib.a 之外
!lib.a
# 忽略根目录下的todo.xx文件
/todo.xx
# 忽略目录下所有文件
NewFiler/
# 忽略目录下指定的文件 不忽视子文件夹下的
doc/*.txt
# 忽视目录下所有指定的文件  包含子文件下符合条件的
doc/**/*.txt
#   **\通配符

通常情况下是 使用vim .gitignore 修改文件

vim 命令:   i键进入插入模式、esc键退出插入模式、键入":wq"推出并保存修改

修改.gitignore文件是不会立即生效的。使用以下命令立即生效

git rm -r --cached .     #清除缓存  注意命令最后有一个点号 代表文件目录

git add .      #重新trace file  注意命令最后有一个点号 代表文件目录

git commit -m "update .gitignore"   #提交和注视

git push origin master   #可选,同步到远程分支上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值