正常操作
- git init #本地初始化,用于进行本地与github的对接
- git add . #上传那些文件 . 代表所有
- git commit -m "xxx" #上传 文件备注
- git remote add origin https://github.com/niezl1511/Spider.git #确定上传那个git库
- git push -u origin master #上传
一般对于现有数据进行上传,已git init化
cd到指定目录下,再操作下面的步骤
- git add .
- git commit -m "xxx"
- git push -u origin master
1、基本操作
1、创建仓库
Git init: 在一个文件目录执行该指令,会把该目录快速设置成Git的代码仓库。
Git clone: 从远程服务器clone工程,也会创建一个代码仓库。
2、提交修改
git status #查看当前仓库状态。会提示那些文件发生修改,哪些内容需要add&commit
git add 文件名 #添加文件到仓库
git commit -m “注释” #将add的文件添加注释并且提交到代码仓库
git log #能查看到刚才提交的信息
git shortlog #将开发者操作按照姓名分组
git commit –amend -m “追加的注释” #追加注释,会覆盖上次的注释
3、diff比较不同
git diff ReadMe.txt(文件名) 显示指定内容的前后变化
git diff HEAD 显示出上次提交节点的差别
gitk 图形化的log记录
注:git还支持第三方更强大的diff工具:Meld、beyond compare
4-别名设置,简化log
git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)
2、Git操作区域
Git三个区域:工作区(开发修改代码区域)、暂存区、历史区(保存各个版本区域)
- 暂存区:Git根目录下 > .git > index的文件中,保存了所有的代码提交记录。
- add操作就是将记录保存到暂存区,此时Head依然指向之前的内容,通过commit将暂存区的内容全部提交,之后Head指向最新内容(通过gitk查看)
- Git管理的是修改内容,而不是文件
3、Git回退
git checkout ReadMe.txt(文件名) 将未add提交的修改内容全部还原,如果执行add后修改的内容,执行该指令会修改到执行好add后
git checkout – ReadMe.txt(文件名) 能将add提交的内容都回退掉
git reset HEAD ReadMe.txt(文件名) 文件从暂存区回退到工作区
1-回退版本
git reset –hard HEAD~1 回退一个版本
git reset –hard HEAD~5 回退5个版本
hard参数:不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。
也可以通过commit ID回退到对应版本。
2-操作
- git reflog 可以查看所有操作的历史
- git rm ReadMe.txt(文件名) 删除文件
4、文件暂存
在main分支上开发功能的时候,开发到一半,发现了以前的BUG,这时新建一个BUG分支,在上面修复BUG。但是因为main分支开发的功能开发到一半,会导致BUG分支无法编译通过。这时候可以用`git stash`暂存当前的修改。在修改前的分支作为新的BUG分支。等解决BUG后切换回main分支的时候,再把暂存的内容Pop出来。 先checkout一个BUG分支,修改BUG后,用`git merge`合并到master分支,并且删除了BUG分支。这时候回到main分支,通过`git stash`pop出之前暂存的内容。
git stash 暂存
git stash list 查看当前暂存内容
git stash apply/pop 内容恢复,后者会删除记录,前者可以通过git stash drop删除暂存记录。
5、远程仓库
Git本地仓库和Git远程仓库通信,需要SSH进行身份认证。
ssh-keygen -t rsa -C “yourname@example.com” 创建SSH私钥和公钥
git remote add 将本地代码库提交到远程仓库
git push -u origin master 将本地master分支提交到远程的master分支,并关联起来。
git pull –rebase 如果Apush修改前,B push了修改,A push的时候需要先从远程获取最新修改。
6、分支管理
git checkout -b first 创建新分支,并且切换到该分支,等价于:
git brach first 创建分支
git checkout first 切换分支
如果此时有未提交的修改,是无法切换分支的,这时候就可以用git stash进行暂存
git branch 查看分支 -r显示所有远程分支,-a显示所有本地分支和远程分支
(master)git merge first 在first分支进行修改、add、commit后,切换到master分支,合并第一个分支到master分支。
merge和rebase,rebase操作后时间线会合并,merge不会。其余都是一样的。
git branch -d first 删除分支first。-d是删除分支,-D是强行删除分支。
git remote origin 查看远程分支
git remote -v origin 查看详细信息
git push origin dev 将dev分支推送到远程仓库。
一般项目有一个中央的分支,用于打tag和发布realse版本。会新建一个develop分支进行开发,每个开发者再从develop分支新建自己的分支,功能完成后会merge到develop分支。 git add/commit 是分别从工作区,到暂存区,再到版本区。 git push用于版本区到远程仓库。 远程仓库获取最新内容是git pull到工作区 版本区到工作区是git checkout HEAD 暂存区到工作区是git checkout
7、Tag
Tag用于记录某个commit点或者分支的历史快照。Tag通常打在Master分支上,以保证代码的准确性。
git tag version1 创建Tag,会记录在最后的提交上
git tag 查看所有Tag
git show tag名字 显示tag的详细信息
git tag -d version0 删除tag
git push origin version0 推送tag到远程仓库
git push origin –tags 推送所有本地tag到远程仓库
git tag -a v1 -m “vesion1” b87123665216321635173 -a制定tag名字,-m制定注释文字
正常流程
- git init 初始化
- git reflog 查看所有分支
- git status 查看状态
- git add . 把文件夹下面的文件都添加进来
- git commit -m “first commit” . 注:“提交信息”里面换成你需要
- git push -u origin master 把本地仓库push到github上面
添加方法:
.点击Clone or dowload会出现一个地址,copy这个地址备用。
接下来就到本地操作了,首先右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面,Test_Bluetooth即为我的项目名。
接下来输入如下代码(关键步骤),把github上面的仓库克隆到本地
git clone https://github.com/CKTim/BlueTooth.git(https://github.com/CKTim/BlueTooth.git替换成你之前复制的地址)
这个步骤以后你的本地项目文件夹下面就会多出个文件夹,该文件夹名即为你github上面的项目名,如图我多出了个Test文件夹,我们把本地项目文件夹下的所有文件(除了新多出的那个文件夹不用),其余都复制到那个新多出的文件夹下,
接着继续输入命令 cd Test,进入Test文件夹
接下来依次输入以下代码即可完成其他剩余操作:
- git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
- git commit -m “提交信息” (注:“提交信息”里面换成你需要,如“first commit”)
- git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)