git的使用复习回顾

根据廖雪峰老师学习所得笔记,用于复习回顾。

廖雪峰 git 学习网址https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

1.首先安装git 

2.初始化仓库

    在你想要作为仓库目录下 输入命令:git init 便会自动创建空的仓库

3.提交文件

    把想要提交的文件,放在仓库目录下,git add  ‘完整的名字’,然后 git commit  -m '描述信息' 

4.查看提交日志

    git log  会显示操作记录 如果 感觉不够简洁明了,可以用 git log --pretty=oneline 会显示 提交的版本号

5.查看工作区与git库的状态

    git status 可以查看工作区 与版本库   两者内容的变化

 

6.版本回滚

    git log 查看提交历史,以便确定回滚到哪个版本

 

    git reset --hard 版本号 (这个版本号是 git log --pretty=oneline 输出的commit -id 号)

7.回滚后悔药

    如果版本回滚后,你又想后悔, 如果,是立即后悔(回滚后的窗口还没有关,可以往上翻翻 找到你想到达的commit id号)

用 git reset --hard 版本号(commit  id 号)

    如果是第二天则可以 用 git reflog 命令 可以看到我们的每一次命令记录  然后用 git reset --hard 版本号(commit id 号)

8.撤销修改(即丢掉工作区的修改)

 

    比如刚修改后,还未 git add 时 想要回滚 用命令 git checkout -- ‘文件名’

9.撤销修改(即丢掉暂存区的修改)

    比如修改后,你git add 但并没有 git commit 时,用命令 git reset HEAD <file> 丢掉暂存区的修改重新回到 工作区

然后再采用  上面的方法撤销工作区修改。这样便可以完全撤销

10.删除文件(分为 误删,删 两种情况)

    删:在仓库目录下 rm  <file>   为了 工作去与版本库一样则 用命令 git rm <file>  然后 git commit -m ‘描述信息’

    误删:git checkout -- <file>  即用版本库中的版本替换工作区的版本 无论工作区修改还是删除 都可以 ‘一键还原'

注意: 如果误删一个文件 恢复时,只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

11.远程库(应用场景:本地库与github中的git库远程同步)

    创建好github账号后,需要生成  ssh-key 可以在命令行中输入 ssh-keygen -t rsa -C "username" (注:username为你git上的用户名)一路回车 生成密钥,添加到 github 账号的 ssh-key 列表中

    1.github账号中新建一个库。2.本地库与之相联,git remote add origin git@github.com:Jxiaoyang/myRepository1.git  。 3.把本地的库推送到github的远程库中git push -u origin master

 这样就关联了起来,也同步了

取消本地目录下关联的远程库:git remote remove origin

12.远程库内容改变时(与本地库冲突)

    场景:多人协作时,当你本人要从本地库push 时,显示

error: 无法推送一些引用到 'git@github.com:Jxiaoyang/myRepository1.git'
提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外
提示:一个版本库已推送了相同的引用。再次推送前,您可能需要先合并远程变更
提示:(如 'git pull')。

  先 git pull  <关联名>  <分支>  如: git pull origin master

再 git push origin master  这样就能推送上去

13.克隆远程库(场景:用于抓取资源)

    git clone 后面跟 改资源的url

14.合并分支

    分支的创建 命令: git branch dev

    分支的切换 命令:git checkout dev

也可以直接一条命令完成以上2条命令的操作:git checkout -b dev

    命令:git branch 会列出所有分支,*标记表示当前的分支  

然后可以在当前分支 git add  git commit 

合并时,先切换到master分支 git checkout master

然后执行命令:git merge dev  git merge命令用于合并指定分支到当前分支

合并完成后 可以放心删除dev 分支

命令: git branch -d dev

15.合并分支(冲突(各个分支相同文件内容不同))

如: master分支 修改一个a文本 dev 分支也修改了一个a文本 

这种情况下,Git只能试图把各自的修改合并起来,但这种合并就可能会有冲突

必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件

我们也可以直接看内容

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改如下后保存:再提交 最后删除分支。OK

16.合并分支用普通合并(上面方法为快速合并 合并后没有历史记录)

     合并时命令:git merge --no-ff -m "merge with no-ff" dev   

     --no--ff  表示禁用 快速合并

    命令: git log --graph --pretty=oneline --abbrev-commit 查看分支历史

17.bug分支

    场景:当你在完善一个功能模块时,发现以前写的模块有个bug 需要修复更改,才能更好的完成此时的模块.

先冻结此时工作环境 等修复完bug再来完善这个模块. 采用命令:git stash    然后用git status查看工作区,就是干净的(除非有没有被Git管理的文件)

    修复BUG 时,首先确定是哪一分支上的bug 假定从master分支上修复, 就从master分支上创建临时分支

    git checkout master    选中

   git checkout -b issue-101 创建并切换临时分支

   在临时分支上修改后 切换到 master 分支  git checkout master

    合并:git merge --no-ff -m "merged bug fix 101" issue-101

 

bug 解决完毕, 开始到完善刚才的模块  首先切换到你工作的分支 列出 冻结工作环境 git stash list

两种回复方法: git stash apply@{数组的下标} 然后  git stash drop@{数组的下标}  删除工作环境

两个格式都如:git stash apply stash@{0} 恢复的是第一个

 

另一种方法:git stash pop  恢复的同时把stash内容也删了

 

18.在未合并之前强行删除分支

git branch -D <branch-name>

19.多人协作

 

要查看远程库的信息,用git remote

git remote -v显示更详细的信息:

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

git push origin master

如果要推送其他分支,比如dev,就改成:

$ git push origin dev

你的小伙伴要在dev分支上开发,就必须创建远程origindev分支到本地,于是他用这个命令创建本地dev分支

git checkout -b dev origin/dev

git add env.txt

git commit -m "add env"

git push origin dev

你的小伙伴已经向origin/dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送:

推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:

$ git pull

There is no tracking information for the current branch.

Please specify which branch you want to merge with.

See git-pull(1) for details.

git pull <remote> <branch> I

f you wish to set tracking information for this branch you can do so with:

git branch --set-upstream-to=origin/<branch> dev

 

git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接:

$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

再pull:

$ git pull
Auto-merging env.txt
CONFLICT (add/add): Merge conflict in env.txt
Automatic merge failed; fix conflicts and then commit the result.

 

 

这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push:

 

$ git commit -m "fix env conflict"
[dev 57c53ab] fix env conflict

$ git push origin dev
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 621 bytes | 621.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
   7a5e5dd..57c53ab  dev -> dev
 
 
根据廖雪峰老师学习所得笔记,用于复习回顾。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值