126°

git简单操作

1、

git init 初始化仓库

git add 1.txt 添加文件

git commit -m ”commit” 提交更新,添加注释

git status 查看仓库状态

git log 查看日志

 

//修改文件后提交更新

git diff  查看有哪些修改

git add 添加文件 //文件修改后,在提交之前必须 add

git commit -m “commit”

 

2、

//版本回退

git reset —hard HEAD^  回退到上一个版本

git reset —hard 18ffb42 回退到指定版本

git reflog  记录每一次提交记录,包括回退、commit

 

git diff HEAD -- 1.txt 查看工作区和暂存区的不相同的地方,1.txt前面有空格

 

3、

//撤销修改

//修改操作还未提交到暂存区

git checkout -- 1.txt

//修改操作提交到了暂存区

git reset HEAD -- 1.txt

 

//删除文件

rm 1.txt 删除文件

 

//确认删除文件

git rm 1.txt   

git commit

 

//文件删除还未提交到暂存区,撤销删除

git checkout -- 1.txt

//文件删除提交到了暂存区,撤销删除

git reset HEAD -- 1.txt

 

4、

//远程仓库

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000

 

1、首先在GitHub上创建仓库

2、将本地Mac的rsa公钥保存到GitHub的SSH中

3、添加远程仓库

git remote add origin git@github.com:xxxxx/test.git

origin是远程仓库名字,可以修改成其他

 

4、推送本地代码到远程仓库

git push -u origin master

如果第4步报错,fatal: refusing to merge unrelated histories

执行:git pull origin master --allow-unrelated-histories

 

将本地修改推送到远程仓库

git push origin master

从远程仓库获取更新

git pull origin master

 

5、

//创建、合并分支

从远程仓库下载代码到本地后,如果本地代码为完成,上传到远程仓库,会影响别人代码。如果不上传,有可能会丢失本地代码。

分支可以解决这个问题,本地创建分支,即使上传到远程仓库,也会创建新的分支,不会影响其他人。而且分支不会影响主线的代码。

分支可以从远程仓库pull代码,合并后提交代码也不会有影响。

 

//创建分支

git checkout -b dev

//查看分支

git branch  分支名签名有* 的 是当前分支

//切换到master分支

git checkout master

//合并分支代码到master上

git merge dev

//删除分支

git branch -d dev

//删除没有合并的分支

git branch -D dev

 

//合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并

git merge --no-ff -m 'merge with no-ff' dev

 

 

6、

BUG分支

当前正在写代码,临时让解决BUG,但是当前代码还没有写完,可以先把当前分支保存起来,然后在master上重新创建分支解决BUG,BUG解决后再回到保存的分支,继续工作。

 

//创建分支 新加功能

git checkout -b dev1

vim 1.txt

//临时来了需求,解决崩溃BUG,先把dev分支的场景保存

git stash

 

//创建分支,解决bug

git checkout -b dev2

vim 1.txt

git add .

git commit

git checkout master

git merge —no-ff -m ‘fix bug’

git branch -d dev2

 

//BUG修复后,回到分支dev,

git checkout dev

//还原dev的工作场景

git stash list   //查看保存的工作场景

 

//还原工作场景

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

git stash pop

 

 

7、

pull/push远程分支

git remote -v : 查看远程库信息

 

//推送本地分支到远程仓库

git push origin dev(分支名)

 

//从远程仓库拉取分支到本地

git checkout -b dev origin/dev

如果报错:atal: Cannot update paths and switch to branch 'develop' at the same time.

先执行git fetch ,然后再执行git checkout -b dev origin/dev

 

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

 

 

8、tag

//给当前分支的最近的commit打tag

git tag V1.0

 

//对某一次commit打tag

git tag v1.0 f52c633

 

//指定tag标签名和注释

git tag -a v1.0 -m ‘v1.0’ f52c633

 

//查看所有tag

git tag

git show v1.0 //查看tagv1.0的信息

 

git push origin <tagname>可以推送一个本地标签;

git push origin --tags可以推送全部未推送过的本地标签;

git tag -d <tagname>可以删除一个本地标签;

 

删除一个远程标签,需要先删除本地标签,然后删除远程标签

git tag -d <tagname>

git push origin :refs/tags/<tagname>

本文由【xiaobai1315】发布于开源中国,原文链接:https://my.oschina.net/mexiaobai1315/blog/2987358

全部评论: 0

    我有话说: