基础操作命令
git init 初始化仓库
git status 查看状态
git add a.txt 将a.txt文件的添加或修改加入到暂存区(index)
git commit -m 'create a.txt' a.txt
git add b.txt 将b.txt文件的添加或修改加入到暂存区(index)
git commit -m 'create b.txt' b.txt
git commit -m "a.txt a add1" a.txt 修改a.txt 添加:a add1 内容后提交到本地库的当前分支
git log (a.txt) 显示(a.txt)从最近到最远的提交日志 (有显示版本号)
git log --pretty=oneline (a.txt) 以漂亮的格式显示(a.txt)提交的日志 (有显示版本号)
版本回退
未提交的撤销
撤销工作区的修改(还未add到暂存区(index)的文件) : git checkout -- test.txt
撤销已经add到暂存区(index)但未commit的文件 :git reset HEAD test.txt
已提交的回退
git reset --hard HEAD^ (由下图可知,通过git log查看确实已经回退 撤回提交,但是对a.txt做的修改a add1消失了)
a.txt的添加的 啊add1内容丢失了
虽然撤回了提交,但是由于a.txt修改的内容丢失了,所以可以用版本穿梭找回来
①git reflog --pretty=oneline (从开始到现在的所有指针指向,包含回退的指针指向用来版本穿梭)
② git reset --hard 1abpp79
若想实现,撤回提交并且不丢失a.txt的数据可以用 git reset --soft **** 命令实现
git reset --soft a32bf69cec7ababd7edd83d3331eb41f98571df3
将项目和github账户相连
1.注册github账户
2.检查ssh秘钥
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息(No such file or directory表示第一次)
3.创建SSH Key: ssh-keygen -t rsa -C [email protected] 成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。
家目录下有了 .ssh文件夹
4.粘贴id_rsa.pub内容到Github
5.测试连通性: ssh -T [email protected]
将项目从本地推送到远程库
情景描述:我在本地创建了一个OA项目后,我又想在GitHub创建一个OA项目,并且让这两个仓库进行远程同步
1 先在本地新建好一个git项目OA
git init
git add -A
git commit -m "create" a.txt
2 到Github上新建一个同名的空项目
3 本地和github上的仓库进行关联(以下命令是在当前项目的.git目录下执行)
git remote add origin https://github.com/wxds/oa.git (此网址在github上创建好目录后自动生成的)
4 把本地库的内容推送到远程gitpush命令,实际上是把当前分支master推送到远程
当第一次推送时:git push -u origin master
当以后再推送时:git push origin master/dev/test
将修改拽到本地:git pull origin master
将项目从远程库clone到本地
根据url地址(github上建好项目后自动生成的地址) 用户名和密码 clone项目
现在又git服务器上又创建一个 fly 分支
git fetch origin fly 和远程的fly分支联系
git checkout -b fly origin/fly 作用是checkout远程的fly分支,在本地取名为fly,并切换到本地的fly分支
git pull origin fly
直接拉取远程dev分支
git clone -b dev https://git.oschina.net/search/bigpay.git
在本地dev分支的基础上创建一个mytest分支然后将此分支推送到git上
git branch mytest :创建mytest分支
git checkout mytest :切换到mytest分支
git push origin mytest :将本地mytest分支推送到远程
分支
查看分支:git branch
创建分支:git branch dev/dongdong /...
切换分支:git checkout dev/dongdong/...
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge dev
删除分支:git branch -d name
删除远程dev分支:git push origin --delete dev