赞
踩
最近研究了一下Git的使用。幻想一下,你去了一个公司,公司的所有代码库在一个远程的lab里面。由大家克隆下来,然后进行一些开发。测试通过的话会更新的公司的代码库里。
在这样的背景下,介绍一下Git结合远程服务器,远程服务器分支的使用。
公司的代码在远程的服务器lab里面,我们主要干几件事情:
#直接克隆公司代码(master)
git clone *.git
#在本地克隆的master中克隆本地分支。注意此时远程服务器没有分支,仅本地有
git branch my_branch
#切换到分支my_branch
git checkout my_branch
# 查看当前分支
git branch # *在当前分支前面
#将本地的分支上传至远程, 远程上自动生成分之my_branch与本地对应, 注意 origin代表远程的意思
git push origin my_branch
# 查看当前分支
git branch # *在当前分支前面
#在本地创建添加一个文件
vim read.rb # 使用vim 随便输入,添加并保存。不会vim的可以手动创建一个read.txt
#查看状态
git status # 会显示 read 文件 changes not stated xxx (代表未跟踪)
# 加入跟踪(一般也叫暂存)
git add file_name
# 上传(准确的说是保存到了本地的分支中(仓库))
git commit -m "This just test!"
# 进入本地master
git checkout master
# 将远程master 拉下来同步。(别人可能对远程master有贡献)
git pull
# 最好git status 看下有没有融合 一般来讲git pull = git fetch + git merge, 没融合不让切换分支
# 进入本地分支 my_branch
git checkout my_branch
# 将本地master融合到my_branch
git merge master #或者 git rebase master
git push origin my_branch # origin 代表远程,my_branch代表分支名字。 组合一起为 远程分支的名字
当远程服务器的代码(master)有了别人的代码,主代码进行更新,本地需要将其更新过来,可以采用如下策略。
#先切换到本地主分支
git checkout master
#把别人更新后的远程代码Pull下来
git pull
#切换到自己的分支
git checkout my_branch
#将本地克隆下来的代码融合至此分支(如果有冲突可以百度看看咋解决)
git merge master
# 如果如果想把自己本地分支的代码提交到远程分支上
git push origin my_branch
参考
有时候有些修改不想上传,又想切换环境,此时需要git stash。
简单地说,两条命令。
本地分支不想提交,在本地分支中运行 git stash,就可以切换分支了
干别的事情
干完别的事情后,切回分支, 运行git stash pop, 再把之前的修改弹出来。接着干!
python
# 删除本地分支
git branch -d my_branch
# 删除远程分支
git push origin -d my_branch (一般不删)
有时候,master要回退之前的版本。
可以运行
git log 查看之前的git节点, 按b和f分别代表是 上一页和下一页。
然后复制一下commit 后面一长串字符
运行 git checkout + 字符 就会将当前的回溯到之前的
然后 进行操作,例如 我要起一个docker环境
切换回来,可以运行 git checkout master 前提是之前操作都在master进行的
然后 运行 git pull , 拉取最新代码
这部分比较简易 ,主要是自己做个记录。
https://blog.csdn.net/zt1519/article/details/81713748
git reset --hard HEAD~数字 # 回到之前的第几个版本,不保留修改
# 或者 git reset --hard + 版本号
# --hard 表示不保留修改,慎用!!!
# 版本号可以通过 git reflog 查看。 如果回退了,用git log 看不了回退前的
第二种方法:
第二次提交的时候,使用git commit --amend 即可!
当执行了git commit --amend之后,想撤销操作,可以这样:
git reflog --date=iso # 查看之前的git记录,和对应的id
#然后git reset+想恢复到的地方的id,就可以恢复到任一个被覆盖的commit id了
git reset id # 好处是 可以保留本地修改
https://www.jianshu.com/p/571153f5daa1
git rebase -i HEAD~数字
# 在出现的框中 将后面几个改为s开头
# :wq
# :wq
有时候拉了一文件没成功,但是已经文件拉下来了,导致再次pull不能成功。这是要要把一些红色的(没有add)的删除。
git clean -d -fx
作用是:删除没有git add 的文件 ,执行之后解决了 error: The following untracked working tree files would be overwritten by …的问题。
引用
git rm <filename> # 直接删除git跟踪,并删除文件
git rm --cached <filename> # 从git中删除跟踪,文件未删除。
https://git-scm.com/book/zh/v2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。