在 linux 上安装git
sudo apt-get install git
在windows上安装git,直接去官网上去下载 (下载完成后安装)
安装过程中加上以下选择,其他都选默认- -!(反正看不懂)
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-b639032d0395ac7863ec19ed8907b5bc)
安装成功之后,就会在桌面出现一个图标打开
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cbd91d5fd5815ebabc3c07457f87d5d4)
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-5456ef880f46ee7abe7842ee02d3f657)
然后我们需要在本地创建一个版本库,任意选一个盘符 cd 进去 然后mkdir 创建一个文件夹
cd 进入其中 输入
git init 然后 git就会把仓库创建好了.这个库是一个隐藏文件
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f39ee1b82435e560031be4c447161ced)
可以通过命令 ls -ah 来查看
这样一个基本的git就搭建好了 使用windows系统需要下载 Notepad++ 用来打开其中的文件,为什么这样呢,大牛是这样解释的
千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题
然后 我们在本地搭建好了一个git,记住这仅仅是在本地搭建好的
常用的命令:
git init 初始化git仓库
git status 查看工作的状态
git add filename 将文件的修改或添加 添加到缓存区
git commit -m "提交描述" 将缓存区的修改,提交到版本仓库
git log 查看当前版本下的所有提交日志
git reflog 查看所有的git命令历史记录
git reset --hard HEAD^ 回退到上一个版本 (HEAD^^上上版本...HEAD~100回退到上100个版本)
这个操作可以回退到指定的版本位置..
也可以用 git reset --hard 1900 后面的1900是修改操作的版本的ID
输入命令 git log
下面这些都是版本ID 我们只需输入前4位就可以了
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9de6f95a8b9923dfd26e499faea8304e)
git chechout -- filename 在git add之前撤销某个文件的修改
git reset HEAD filename 将暂存区中的文件撤销添加操作,并将工作区状态回退到git add之前的状态
1) 如果只是修改了本地工作区的文件没有git add 用 ![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-5afce191dfab4d56e24f9a8ecaa7681c)
2) 如果 提交到本地暂存区的话 用 ![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4a68d83a9c40dad03e2944de7ab03fc6)
3) 如果 提交到本地版本库的话 用 ![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-bbf7ce91907bdfef0d2917b734ca2bca)
说先如果我们需要连接一个远程的仓库就需要在自己的github中添加自己的ssH密钥
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-58502809038e0e19f5954a719a6cea9a)
这个密钥在哪里搞到手呢.就要去我们的本地的库中输入命令搞到手.
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a3ac5cbbd130aaad0b75890a2275905f)
进入我们c用户下找到.ssh文件夹进入打开右键打开git命令行
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-88b3c50c7087a6979dab1665d0e86b9c)
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4197b2219cc2c2b0101de94d9728921a)
配置全局的name和email,这里是的你github或者bitbucket的name和email
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-5b3818b60e145fa93df8e685cba23d81)
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4ef02da464e2997abf75bd387a7326b1)
在我们windows目录下找到
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-870af4c96260b50e9dafcc79b5fc0a8c)
从公钥中把ssh全部复制出来粘贴到我们服务器上的ssh设置中去
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-b6d637142d801490bdeb343ecdb7f10d)
git remote add origin git@github.com:JsonQueue/python7.git 链接远程仓库,要求当前电脑的ssh文件夹下的id_rsa.pub文件公钥的内容,需要在github的settings中的SSH中添加进去,进行远程连接的验证
如果出现
github常见操作和常见错误!错误提示:fatal: remote origin already exists.
去查一下一大把解决办法,这里不多说
git push -u origin master 将本地仓库的内容,上传到远程仓库
如果我们本地没有仓库,我们就需要从远程中同步到本地仓库
使用命令 git clone 远程仓库地址 克隆远程仓库内容到本地
如果我们有库,只需要同步一下就可以了,输入命令
git pull origin master 从远程仓库同步本地仓库
===================================================
下面我们讲一下git创建分支及其用法
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-1b7d8e1c80fb5fa8c28f18718ad61c2d)
git branch 查看所有分支 分支名前带* 指当前所在分支
git branch 创建分支
git checkout 分支名 切换分支
git checkout -b 创建并切换分支
git merge 分支名 合并分支
分支合并的时候最好使用这个
git merge --no-ff -m "merge with no-ff" dev
这个命令可以保证节点修改信息会生成一个log日志
git branch -d 分支名 删除分支
如果 你的开发工作正在进行,突然有一个紧急的bug需要修改,我们需要保存当前开发状态,,使用以下命令
git stash 保存当前分支的工作状态,之后可以再切回这个状态
git stash list 查看保存的工作状态
git stash apply 保存工作状态名称 切换到对应的工作状态
git stash drop 工作状态名称 删除保存的工作状态
git stash pop 恢复工作状态并删除保存记录
-------------------------------------------------------------------
下面主要讲一下对人协作开发一个项目,,
大家都从一个远程git上下载下来项目来进行开发,,但是有的人做的比较快先提交到远程git上,那么之后提交的程序员就会在提交的
时候出现提交失败的情况..应为后一个人本地库已经和远端git已经不同步了,我们需要先备份一下自己的项目,,然后同步一下,然后再提交自己的项目,这样就可以提交成功了..
git remote 查看远程库的信息.
git remote -v 显示更加详细的信息
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c60fc86c7994ceec4c49c80bc1c30701)
-------------------------------------------------
当我们有多个远程库的时候,我们也可以跟多个远程库建立链接, 不过我们需要用不同的名称
来标识不同的远程库.
我们链接码云的远程库,在我们链接的时候起个别名
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-6babce27116eb77b5ea2a3bf496b2e3f)
我们链接 国外的github远程库,我们一样起一个别名
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-183a3a15ce85f513cd370af6f7a88bc9)
这样我们 使用命令查看我们的链接的时候 git remote -v
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-363b594d5cd718a98f2929220b798fcf)
为什么是两个地址呢, 应为一个是下载地址,一个是上传地址,当然两个地址一般都一样....
------------------------------------------------
![](https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-35ecee7d44bd28b1af6b860521381359)
关于创建标签和操作标签的一些操作
git show 版本号 查看版本详情
git push origin 分支名 tag名 将本地的tag提交到远程仓库
git push origin 分支名 --tags 将本地所有未推送的tag全部推送到远程仓库
git tag -d tag名 删除本地tag
git push origin 分支名 :refs/tags/tag名 删除远程仓库tag
|