git使用

初始化一个项目区 

alan@pc:/raid/xz/workspaces/git_test/wechat$ git init
已初始化空的 Git 仓库于 /raid/xz/workspaces/git_test/wechat/.git/

设置签名

设置项目签名 

alan@pc:/raid/xz/workspaces/git_test/wechat$ git config user.name xz
alan@pc:/raid/xz/workspaces/git_test/wechat$ git config user.email 12345678@qq.com
# user信息可以在当前目录./git/config文件中看到

设置系统签名

alan@pc:/raid/xz/workspaces/git_test/wechat$ git config --global user.name xz
alan@pc:/raid/xz/workspaces/git_test/wechat$ git config --global user.email 12345678@qq.com
# 全局用户信息在这个文件中可以看到/home/alan/.gitconfig

查看状态

工作区与暂存区不同显示红色信息

工作区与暂存区相同,暂存区与本地库不同显示绿色信息

alan@pc:/raid/xz/workspaces/git_test/wechat$ git status
位于分支 master
尚无提交
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)
	a.txt

将工作区提交到暂存区

alan@pc:/raid/xz/workspaces/git_test/wechat$ git add a.txt 
alan@pc:/raid/xz/workspaces/git_test/wechat$ git status
位于分支 master
尚无提交
要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)
	新文件:   a.txt

取消放到暂存区

alan@pc:/raid/xz/workspaces/git_test/wechat$ git rm --cached a.txt 
rm 'a.txt'
alan@pc:/raid/xz/workspaces/git_test/wechat$ git status
位于分支 master
尚无提交
未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)
	a.txt
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

# 全部清除出暂存区
git rm --cached -r .

从暂存区提交本地库

alan@pc:/raid/xz/workspaces/git_test/wechat$ git commit -m '注释' a.txt
# -m 后边要写注释

查看历史记录

# 普通
git log
# 好看
git log --oneline
git log --pretty=oneline
# 实用,看一看移动几步
git reflog

版本的前进和后退

基于索引值的操作(git reset --hard [索引号或HEAD])

alan@pc:/raid/xz/workspaces/git_test/wechat$ cat a.txt 
aaaaaaa
bbbbbbb
ccccccc
ddddddd

alan@pc:/raid/xz/workspaces/git_test/wechat$ git reflog
36e8a9d (HEAD -> master) HEAD@{0}: commit: this is second commit
5124b5f HEAD@{1}: commit (initial): this is my first commit a.txt

alan@pc:/raid/xz/workspaces/git_test/wechat$ git reset --hard 5124b5f
HEAD 现在位于 5124b5f this is my first commit a.txt

alan@pc:/raid/xz/workspaces/git_test/wechat$ cat a.txt 
aaaaaaa
bbbbbbb
ccccccc

reset命令的三个参数

--soft

        1.仅仅移动本地库的指针(不会动工作区和暂存区)

--mixed

        1.移动本地库指针

        2.重置暂存区

--hard

        1.移动本地库指针

        2.重置暂存区

        3.重置工作区

文件比较(不带文件名比较多个文件)

# 和暂存区比较
git diff a.txt

# 和本地库HEAD指针位置比较
git diff HEAD a.txt

# 和历史版本比较
git dif HEAD^ a.txt

分支

# 查看分支
git branch -v

# 创建分支(hot_fix是分支名)
git branch hot_fix

# 切换分支
git checkout hot_fix

# 合并分支(分两部)
#  1.切换到接受修改的分支,假设master是接受合并的分支
#  2.执行merge命令,假设hot_fix是有新内容的分支
git checkout master
git merger hot_fix

与远程库github或gitee互动

# 查看别名
git remote -v

# 增加别名(name1自己起的名)
git remote add origin https://github.com/xz-0/git_test.git
# 删除一个地址
git remote remove origin

# 例子(fetch代表取回的地址,push代表推送的地址)
alan@pc:/raid/xz/java/javacode$ git remote -v
origin	https://gitee.com/xu-yu-chen/javacode.git (fetch)
origin	https://gitee.com/xu-yu-chen/javacode.git (push)

push

git push name1 master

clone(不用初始化)

git clone https://github.com/xz-0/git_test.git

克隆的效果:

        1.初始化本地库

        2.完整的将远程库下载到本地

        3.创建origin远程地址别名

pull = fetch + merge

        git fetch [远程库地址别名] [远程分支名]

        git merge [远程库地址别名]/[远程分支名]

# fetch
git fetch origin master

# 查看fetch的文件,并不会改我们工作区的内容
# 首先切换到checkout,就可以查看fetch下来的东西
git checkout origin/master

# 记得checkout回去
git checkout master

# merge
git merge origin/master

        git pull [远程库地址别名] [远程分支名]

git pull origin master

强制pull,直接覆盖本地

$ git fetch --all
$ git reset --hard origin/master 
$ git pull

.gitignore文件

*.png        #忽略所有.png文件
models/      #忽略model/文件夹和model/里面的所有文件

一直忽略某个文件

# 1、将文件修改忽略
# 首先进入到这个文件夹的所在的目录然后再设置忽略文件夹的提交
git update-index --assume-unchanged [file-path]
# 2、取消文件忽略
git update-index --no-assume-unchanged config.php
# 3、git 强制替换本地文件 
# 分三步
git fetch --all  git fetch从远程下载最新的,而不尝试合并或rebase任何东西。
git reset --hard origin/master  将主分支重置为您刚刚获取的内容。
git pull   可以再次pull 一下
# 参考
# https://blog.51cto.com/lxw1844912514/2982238

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值