我的GIT使用笔记

参考资料:

Pro Git book:http://git-scm.com/book/zh/v1

 

一、常用命令

 

提交所有代码

git add --all

git commit -m 'some messages'

git push origin master

 

同步仓库到另一个分支(比如gh-pages分支):

git checkout gh-pages // go to the gh-pages branch 切换分支

git rebase master // bring gh-pages up to date with master

git pull // pull before push

git push origin gh-pages // commit the changes

git checkout master // return to the master branch

 

同时向多个git仓库提交代码

1、添加一个新地址: git remote add origin_gitlab http://10.2.10.22/3rd_custom/apollo.git 

2、往新地址推送代码:git push origin_gitlab master 

如果推送失败,则先pull:

git pull origin_gitlab master

如果pull失败,报错 fatal: refusing to merge unrelated histories,则加上一个参数:

git pull origin_gitlab master --allow-unrelated-histories

 

移动文件或文件夹

移动文件:git mv file1.txt source/file1.txt

移动文件夹:

git mv src fastdfs/fastdfs-client/

 

 

创建一个tag(发布一个版本)

例如:

git tag -a v1.1.0.RELEASE -m 'Release version 1.1.0.RELEASE on 11/21/2014'

git push origin  v1.1.0.RELEASE

其中  v1.1.0.RELEASE 为 tag name

 

删除tag,重新上传

1、先删除本地tag:git tag -d v1.2.1.RELEASE

2、然后再删除远程tag:git push origin :refs/tags/v1.2.1.RELEASE

3、然后在重新执行创建tag的过程

 

撤销未提交(push)的commit

1、git log查看commit id,找到提前之前的id

如下所示:

$ git log

commit 6aeb1823a804d5b154ebdb4a5a293b0731dd7cdb (HEAD -> master)

Author: zollty <zollty@163.com>

Date:   Wed Dec 19 11:26:08 2018 +0800

 

    update pom

 

commit 2477fb81aa5ce01f50f377f7dd6918848e2905c2 (origin/master, origin/HEAD)

Author: zollty <zollty@163.com>

Date:   Sun Apr 15 20:07:14 2018 +0800

 

    update

 

commit ca9b0887698f5b73d5fb3ba8f07ab13214f4f4a9

Author: zollty <zolltytsou@gmail.com>

Date:   Thu Jan 25 21:12:13 2018 +0800

现在HEAD在第一个的位置,我们找到第二个位置的 id:2477fb81a

 

2、git reset --hard commit-id,注意参数hard会丢弃修改的文件。

一般情况下,不要加--hard,使用 git reset commitid 即可。

 

git reset  --[soft, hard, mixed(default)] 说明

 

首先我们来看几个术语:

HEAD

这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交

Index

index也被称为staging area,是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit

Working Copy

working copy代表你正在工作的那个文件集

 

--soft 只是重置head,更改的文件不会还原,index不会重置,意味着下次commit,不需要再add;

--mixed 意味着,更改的文件不会还原,下次提交需要重新add;

--hard 意味着彻底还原,更改的文件会还原到之前的版本,更改丢失。


 

分支管理

查看分支列表:git branch

将分支切换到 master:git checkout master

从现有分支创建 release分支:git branch release

从现有分支创建 release分支:git checkout -b release

从 master分支创建新的分支:git checkout -b release master

 

将release分支 push到服务器:git push origin release

 

将修改 merge到 maser分支

git checkout master

git merge release

 

删除 release分支

git branch -d release

 

git 删除远程分支

一不小心把本地的临时分支push到server上去了,想要删除。

一开始用

git branch -r -d origin/branch-name 

不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:

git push origin :branch-name

冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。


 

搭建GIT博客: 
http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html 
http://never.doubting.me/2013/04/18/2013-04-18-setup-octopress-on-github-step-by-step/ 
http://ibruce.info/2013/11/22/hexo-your-blog/ 


 

GIT代理设置:

    位置:~/.gitconfig,例如

    C:\Users\Administrator\.gitconfig

 

内容如下:

[user]
name = zollty
email = zollty@163.com
[http]
proxy = http://170.17.18.80:8080
[https]
proxy = http://170.17.18.80:8080

 

GIT命令下 文件中文名 乱码问题:

设置一下就行了:

git config --global core.quotepath false

 

 

Linux下GIT的使用: 
http://www.linuxidc.com/Linux/2014-03/97821.htm 
最好是参见官方Help文档: 

https://help.github.com/articles/set-up-git/#platform-linux

https://help.github.com/articles/caching-your-github-password-in-git/

https://help.github.com/search/?utf8=%E2%9C%93&q=linux


 

分支操作:

查看分支:git branch 

创建分支:git branch  name 

切换分支:git checkout  name 

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

合并某分支到当前分支:git merge  name 

删除分支:git branch -d  name

 

 

GIT换原某个文件到之前的版本,命令如下:

zollty@zollty-System-Product-Name:~/0sync/0work/git/kop-resource-stat-demo$ git status
位于分支 master
修改: src/main/java/cn/stat/AipCall.java

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
zollty@zollty-System-Product-Name:~/0sync/0work/git/kop-resource-stat-demo$ git log src/main/java/cn/stat/AipCall.java
commit eae91cbd5322f85decfd9c3788636809dea361b2
Author: zollty <zollty@163.com>
Date: Tue Sep 6 16:08:53 2016 +0800

commit c13d4ed0289251db11a3abf375179f674a192984
Author: zollty <zollty@163.com>
Date: Tue Sep 6 14:31:37 2016 +0800

Initial Commit

zollty@zollty-System-Product-Name:~/0sync/0work/git/kop-resource-stat-demo$ git checkout eae91c src/main/java/cn/stat/AipCall.java

 

 

Git暂存命令

当需要拉取远端文件,但又不想提交正在修改的文件时,可以使用git stash 命令将当前的工作区保存(藏匿)起来,等pull 完后再还原。

此功能类似于实现了 ‘局部拉取更新’ 。

命令如下:

git stash  //暂存修改工作区

git pull  //拉取远端文件

git stash pop stash@{0}    //将工作区还原

注:如果还原工作区的文件与pull 下来的文件有冲突,要手动修改冲突

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值