git 一步到位
Git基础命令
- git init; 新建代码库
- Git clone url 下载项目
- Git config list-- 显示当前配置
- Git clone -e 编辑配置git文件
- Git add file 添加文件到缓存区
- Git remove -v 查看远程仓库
- Git pull remotename locallbranchname 拉取远程仓库
- Git push remotename localbranchname 推送远程仓库
- Git push origin test:master 提交本地test作为远程master 分支
- Git branch 查看本地分支
- Git checkout name 切换分支
第一步 添加文件
git add readme.txt
第二部 提交文件
Git commit -m ‘wreote a file’
第三部 查看仓库状态
Git status
第四部 查看文件变化
Git diff readme.txt
//版本回退
查看操作记录
git log
回退版本 (回退多个版本 HEAD~10)(glh 波浪线 )
git reset --hard HEAD^
回退到制定版本 (版本号前几位)
git reset --hard 1094a
后悔药,记录每一次命令。
git reflog
撤销修改 未提交版本,提交了就只能 回退版本
git checkout --redadme.txt
//删除文件
git rm test.txt
Git commit -m “ remove test.txt”
删错了文件 ,从版本库删除
git chekctout --test.txt
远程仓库
第1步:创建秘钥,打开git bash
ssh-keygen -t rsa -C "youremail@example.com"
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
推送到远程库 michaelliao--自己的远程仓库名
git remote add origin git@github.com:michaelliao/learngit.git
删除远程库(只是删除链接,本体需要登录github后删除)
查看远程库
git remote -v
然后,根据名字删除,比如删除origin:
$ git remote rm origin
分支管理
创建分支
$ git checkout -b dev
查看当前分支
$ git branch
现在,dev分支的工作完成,我们就可以切换回master分支:
$ git checkout master
现在,我们把dev分支的工作成果合并到master分支上:
$ git merge dev
放心地删除dev分支了:
$ git branch -d dev
工作分支暂存
git stash
工作区?用git stash list命令看看:
$ git stash list
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
恢复
$ git stash pop
Bug分支修复
创建临时分支master
$ git checkout master
修复bug
$ git add readme.txt $ git commit -m "fix bug 101"
[issue-101 4c805e2] fix bug 101
1 file changed, 1 insertion(+), 1 deletion(-)
分支合并
git merge --no-ff -m "merged bug fix 101" issue-101
Feature 分支
添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
创建新分支
$ git switch -c feature-vulcan
开发 balabala。
新要求:功能取消 。功能删除。
$ git branch -d feature-vulcan
强行删除:
$ git branch -D feature-vulcan
多人写作分支功能
因此,多人协作的工作模式通常是这样:
1.首先,可以试图用git push origin <branch-name>推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
5.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。