首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git简易教程和笔记(一)

"工欲善其事,必先利其器", 代码管理亦是如此,目前主流的工具有SVN和git。

工具始终只是工具,当然我们可以选择好用的工具,仅此而已。

git的优点:多分支管理,记录清晰可见,链表的存储结构,切换HEAD指针无缝切换各个版本...不一一列举了,懂者自然懂,用过的都说好,不解释了,快上车!!!

git分本地库和远程库之分,顾名思义本地库只存在于本地,远程库存在于服务器端的某一个节点,而本地库也分暂存区和版本库, 一般在git代码管理中,git add之后的文件都存在于待提交的暂存区里,git commit之后才会进入版本库成为版本库的一部分,然后本地版本库更新比对远程库之后,push到远程库中,下一次修改前把最新的版本git pull拉取下来,即为一个闭环.

(本文只是一个学习笔记)

1.创建git

mkdir gitDemo//创建一个目录

cd gitDemo//进入这个目录

git init//实例化

或者

git clone https://www.guithub.com.XXXX/.git

然后根据提示输入用户名或者邮箱

//如果提示报错,之前有其他的git账户之类的 'fatal: Authentication failed for https://www.guithub.com.XXXX/.git' 重新设置一下git账户信息即可

git config --global user.name "xxxx"

2. git添加新的文件或者修改了的文件到暂存库中

git add .// 添加所有的更新到暂存区

3. 提交更新的改变

git commit -m"logmessage"//提交到版本库

4. 查看是否有更改未提交的情况

git status

5. 回滚之前版本

//一般 git commit 操作之后会log提示 HEAD->master也就是HEAD指针指向master刚刚提交的版本

git reset --hard HEAD^//回滚上一个版本,回滚到上上个则HEAD^^,以此类推往回回滚100次则很难数得清楚^的个数可以写成 HEAD~100这样

git reset --hard commit_id///提交id不用填写完整,前面几位可以区分的就可以~

git reflog///查看commit_id和提交历史记录

撤销修改:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库(推到远程库的情况得本地回退之后再push最新版本上去覆盖之)

6. 生成ssh key (必要的安全加密措施)

a. 检查是否有ssh key

cd ~/.ssh//查看这个目录下的文件

b. 生成key

c. 拷贝公钥,设置好对应的key github或者使用的站点

cat ~/.ssh/id_rsa.pub查看并拷贝到到github(远程库的站点设置)上添加设置key

//或者用命令添加到剪贴板

pbcopy < ~/.ssh/id_rsa.pub

d. 测试一下这个ssh能不能使用

7. 拉取远程库

//克隆下来

//cd 到要存储的目录下

// 执行 git clone + 链接

git clone https://github.com/WangGuibin/WGBTagViewDemo.git

//git fetch

git fetch://相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master

git log -p master..origin/master

git merge origin/master//合并远程分支的最新内容

git fetch origin master:tmp//拉取到tmp分支中

git diff tmp// 比较tmp与主分支有啥不一样

git merge tmp//合并掉tmp分支

//git pull

git pull://相当于是从远程获取最新版本并merge到本地

git pull origin master//拉取远程库

8. 推送到远程库

//第一次关联的时候使用

git remote add origin git@server-name:path/repo-name.git

//推送到远程

git push -u origin master

9. 分支管理

查看分支:git branch

创建分支:git branch

git push origin branchName :branchName// 本地分支推送到服务端,并远程建立一个新分支

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge --no-ff //合并子分支加--no-ff参数显示提交细节,不加的话相当于跳过子分支的提交细节

删除分支:git branch -d //删除本地分支

git push origin :branchName//删除远程分支

10. 打上tag

git tag //用于新建一个标签,默认为HEAD,也可以指定一个commit id;

git tag -a -m "blablabla..."//可以指定标签信息;

git tag -s -m "blablabla..."//可以用PGP签名标签;

命令git tag可以查看所有标签。

git push origin //可以推送一个本地标签;

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

git tag -d //可以删除一个本地标签;

git push origin :refs/tags///可以删除一个远程标签

11. 查看log提交记录

/// 生动形象查看git log

git log --graph或者

git log --graph --pretty=oneline --abbrev-commit

12. 使用快捷短键操作,使用git像开挂一样

使用shell终端zsh插件oh my zsh中的 plugin = ( git ) 添加git即可

alias grep git//召唤所有快捷命令

zsh具体教程查看本文尾部链接

13. 如果你在主分支(master)上做了修改,子分支(dev)想要同步主分支的修改,那么有以下两种操作:

# 方式一: git merge 合并分支

git checkout dev#切换到子分支

git merge master#合并主分支 即让主分支覆盖子分支 拥有主分支的当前所有更新

# 方式二: git rebase 好像也叫合并分支

git checkout dev

git rebase master// 将master上的修改合并到 dev 分支(当前分支)。

[廖雪峰的官方网站] (https://www.liaoxuefeng.com)

[猴子都能懂的git教程](https://backlog.com/git-tutorial/cn/)

[SVN菜鸟教程](http://www.runoob.com/svn/svn-tutorial.html)

[zsh学习教程](http://wdxtub.com/2016/02/18/oh-my-zsh/)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180211G00ZEQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券