git 使用笔记

平台:rhel7.2 x86_64bit

安装:

yum install git -y

Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:

/etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。

~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。

当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。

每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

[root@original gitdemo]# git config –list

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

[root@original gitdemo]# git config --global user.name "lockey23"
[root@original gitdemo]# git config --global user.email iooiooi23@163.com
[root@original gitdemo]# git config --list

user.name=lockey23
user.email=iooiooi23@163.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

获取 Git 仓库

有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。

在现有目录中初始化仓库

[root@original ~]# mkdir gitdemo
[root@original ~]# cd gitdemo/
[root@original gitdemo]# ls
[root@original gitdemo]# git init
Initialized empty Git repository in /root/gitdemo/.git/
[root@original gitdemo]# l.
.  ..  .git
[root@original gitdemo]# ls -a .git/
.  ..  branches  config  description  HEAD  hooks  info  objects  refs

以下为几个常用命令演示(状态查看、添加文件、commit):

[root@original gitdemo]# echo '### This is a test repo for git' >readme.md
[root@original gitdemo]# git status -s
?? readme.md
[root@original gitdemo]# git add readme.md 
[root@original gitdemo]# git status -s
A  readme.md
[root@original gitdemo]# git commit -m 'add a test readme'
[root@original gitdemo]# git diff
diff --git a/readme.md b/readme.md
index 2883bae..4185319 100644
--- a/readme.md
+++ b/readme.md
@@ -1 +1,3 @@
 ### This is a test repo for git
+
+##### hello git
[root@original gitdemo]# git status -s
 M readme.md
[root@original gitdemo]# git commit -m 'modify readme'
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   readme.md
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@original gitdemo]# git status -s
 M readme.md
[root@original gitdemo]# git add readme.md 
[root@original gitdemo]# git commit -m 'modify readme'
[master 65eb016] modify readme
 1 file changed, 2 insertions(+)
[root@original gitdemo]# git reflog
65eb016 HEAD@{0}: commit: modify readme
a97d46c HEAD@{1}: commit (initial): add a test readme
[root@original gitdemo]# git reset -- readme.md
[root@original gitdemo]# cat readme.md 
### This is a test repo for git

##### hello git
[root@original gitdemo]# git reset --hard HEAD^
HEAD is now at a97d46c add a test readme
[root@original gitdemo]# cat readme.md 
### This is a test repo for git
[root@original gitdemo]# git reflog
a97d46c HEAD@{0}: reset: moving to HEAD^
65eb016 HEAD@{1}: commit: modify readme
a97d46c HEAD@{2}: commit (initial): add a test readme
[root@original gitdemo]# git reset --hard 65eb016
HEAD is now at 65eb016 modify readme
[root@original gitdemo]# cat readme.md 
### This is a test repo for git

##### hello git

接下来演示如何在github上创建一个远程仓库并与本地仓库进行关联:
这里写图片描述

[root@original gitdemo]# git remote add origin https://github.com/LockeyCheng/demo.git
[root@original gitdemo]# git push -u origin master
Username for 'https://github.com': LockeyCheng
Password for 'https://LockeyCheng@github.com': 
Counting objects: 9, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (9/9), 732 bytes | 0 bytes/s, done.
Total 9 (delta 0), reused 0 (delta 0)
To https://github.com/LockeyCheng/demo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
[root@original gitdemo]# ls
readme.md  README.md
[root@original gitdemo]# cat README.md 
# demo
[root@original gitdemo]# git rm readme.md 
rm 'readme.md'
[root@original gitdemo]# git commit -m 'remove test readme.md'
[master 38e4699] remove test readme.md
 1 file changed, 3 deletions(-)
 delete mode 100644 readme.md
[root@original gitdemo]# git push -u origin master

远程仓库查看结果:

这里写图片描述

做一个远程仓库的本地ssh认证,避免每次提交修改都要输密码:

[root@original gitdemo]# ssh-keygen -t rsa -b 2048 -C "iooiooi23@163.com"
[root@original gitdemo]# ssh-add ~/.ssh/id_rsa
[root@original gitdemo]# cat ~/.ssh/id_rsa.pub #粘贴到github 设置的SSH KEY认证中

这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述
删除本地的http认证方式:

[root@original gitdemo]# git remote -v
origin  https://github.com/LockeyCheng/demo.git (fetch)
origin  https://github.com/LockeyCheng/demo.git (push)
[root@original gitdemo]# git remote rm origin

添加ssh认证方式:

[root@original gitdemo]# git remote add origin git@github.com:LockeyCheng/demo.git
[root@original gitdemo]# ssh -T git@github.com
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
Hi LockeyCheng! You've successfully authenticated, but GitHub does not provide shell access.

测试ssh免密提交:

[root@original gitdemo]# echo 'ssh key ok !' >>README.md 
[root@original gitdemo]# git status -s
 M README.md
[root@original gitdemo]# git commit -a -m 'ssh commit test'
[master d056c71] ssh commit test
 1 file changed, 1 insertion(+)
[root@original gitdemo]# git status -s
[root@original gitdemo]# git push origin master
Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.
Counting objects: 5, done.
Writing objects: 100% (3/3), 259 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:LockeyCheng/demo.git
   38e4699..d056c71  master -> master

对于部分不想进行提交的文件(以.开头文件为例),在仓库主目录下编写一个.gitignore文件,以正则格式书写,示例如下:

[root@original gitdemo]# echo 'do not want to commit' > .ignore
[root@original gitdemo]# git status -s
?? .ignore
[root@original gitdemo]# vim .gitignore
[root@original gitdemo]# cat .gitignore 
.*
[root@original gitdemo]# git status -s
[root@original gitdemo]# git reflog
d056c71 HEAD@{0}: commit: ssh commit test
38e4699 HEAD@{1}: commit: remove test readme.md
ceec8be HEAD@{2}: commit: first commit
65eb016 HEAD@{3}: reset: moving to 65eb016
a97d46c HEAD@{4}: reset: moving to HEAD^
65eb016 HEAD@{5}: commit: modify readme
a97d46c HEAD@{6}: commit (initial): add a test readme
[root@original gitdemo]# 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值