首次使用git 先创建一个用户名和邮箱方便做sha加密ssh key
git config --global user.name “arthurye”
git config --global user.email “your_email@gmail.com”
创建ssh加密防止陌生人往你仓库传东西
ssh-keygen -t rsa -C “your_email@gmail.com”
加密完去c盘/用户/administrator/.ssh/ 右键运行 git bash
用vim id_rsa.pub 或者 cat id_rsa.pub查看公钥 把公钥串并复制到github上创建新公钥加密
去github上登陆后打开右上角头像的setting,进入SSH and GPG keys选项,将之前复制的ssh密钥放上
成功创建公钥
用$ ssh -T git@github.com查看是否加密成功
回传 You’ve successfully authenticated, but GitHub does not provide shell access.
就成功了
创好了可查看配置
git config --list
初始化创建本地仓库
选好目录位置,右键 git bash打开git命令窗口
输入
git init
查看当前仓库文件更新状态
git status
不同步会有红色文件告诉你不同
然后将本地文件添加到缓存区
git add filename(带扩展名)或者 git add . 上传所有变动的文件
再看git status 变动文件就变成蓝色的了
然后从缓存区添加到本地仓库
git commit -m “描述”
再看git status就没有提示了
与远端仓库关联
git remote add origin 远端仓库的https链接或者ssh链接
移除远端创库关联
git remote remove origin
提交本地仓库到远端仓库
git push -u origin master
从远端仓库仅下载到本地仓
git fetch origin master
再比较差异
git log -p master …origin/master
之后合并 注意此时一定要是再master分支状态下合并 不是就用checkout切换到master再合并
git merge origin/master
从远端仓库拉回来,且一部搞定下载和合并
git pull origin master
看提交日志
git log
精简排版的提交日志
git log --pretty=oneline
如果想回到前一个提交的版本可以用
git reset --hard HEAD^
或者用git relog先查看之前的操作,对应的版本号前六位
然后用版本号回滚
git reset --hard 要回退的版本号
这些撤销都是在回滚本地仓库
如果只是再工作区修改了,用
git checkout – 要撤销回滚的文件名
删除某个文件
git rm ***.txt
再添加某个文件
git add ***.txt
或者一步用下面命令覆盖
git mv xx.txt xxx.txt
即删除xx.txt 用xxx.txt替换它了
如果只是修改名字 去掉git即可
mv xx.txt xxx.txt
文件删除
rm xxx.txt
单纯删除但是没有add commit到本地仓库,直接从本地创库拉回来
git checkout – xxx.txt
即可恢复
用ls查看是否恢复成功
分支操作
创建新分支
git branch xx(新分支名)
切换到这个分支
git checkout xx
一步到位创建并进入分支
git checkout -b xx
如果要合并分支内容到主分支
先切换到主分支
git checkoutmaster
再用git merge合并到从分支内容到主分支
git merge 从分支名
然后删除从分支
git branch -d 从分支名
设置git指令缩写的方法,熟悉了之后可以自定义git缩写
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
意思如第一个 把status缩写称st
以后 git status 直接打 git st 即可
想查看工作区和缓存区文件不同用
git diff 文件名
即可
如果远端被其他合作伙伴更新了,我们这边本地仓还没同步
此时你要push你的新代码到远端时会报错提示版本不一致
你就要先把远端fetch下来手动解决冲突然后再push上去即可成功
方法
由于冲突你直接合并到本地master可能不太合适
我们先用git branch temp创建一个临时分区temp放远端新版本
git fetch origin master:temp
然后用git diff temp 比较本地master和temp的区别,
然后合并temp到master
git merge temp
然后删除temp
git branch -d temp
这是已经和远端同步了你可以把自己的新代码push到远端了。
解决冲突方法2
先看远端和本地不同在哪
git remote -v
然后
git fetch origin master 下载下来到master
再用git log -p master… origin/master 查看不同
最后
git merge origin/master合并到本地即可
如果弄完再git status报错HEAD detached from (差异版本号)
说明还是有游离文件为同步到工作区
我们先创新临时temp放游离文件
git branch tmp 280ble0
然后切换到主分支
git checkout master
合并temp
git merge tmp
合并玩删除temp
git branch -d temp
此时再 git status发现问题解决