Q1:忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:
$ cat .gitignore
*.[oa]
*~
第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。 此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。 要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
文件 .gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(/)开头防止递归。
- 匹配模式可以以(/)结尾指定目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(*) 表示匹配任意中间目录,比如`a/**/z` 可以匹配 a/z, a/b/z 或 `a/b/c/z`等
Q2:若要查看已暂存的将要添加到下次提交里的内容
git diff --staged
Q3:移除文件
rm readme.txt
git rm readme.txt
git commit -m "ver 1.1"
Q4:重命名
git mv README.md README
其实,运行 git mv 就相当于运行了下面三条命令:
$ mv README.md README
$ git rm README.md
$ git add README
Q5:查看提交历史
git log 会按提交时间列出所有的更新,最近的更新排在最上面
一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交
git log -p -2
简化输出
git log --stat
定制格式:
git log --pretty=format:"%h - %an, %ar : %s"
Q6:撤消操作
git commit --amend (以当前状态,再次提交)
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果
Q7:从远程仓库中抓取与拉取
$ git fetch [remote-name]
这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看
Q8:查看远程仓库
git remote show origin
Q9:标签
git tag
附注标签
git tag -a v1.4 -m 'my version 1.4'
git show v1.4
后期打标签
查看提交历史
git log --pretty=oneline
删除标签
git tag -d v1.4-lw
Q9:同步更新
Q10:#初始化
[root@node140 git]# git init
Initialized empty Git repository in /opt/git/.git/
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
Q11:#带密码获取版本文件
git clone -b 1.0.2 http://realease:[email protected]:81/idream/platform_products/community_sdk/weplay_game_server_bocai.git
@ 需要转为 %40 字符
Q12:基本使用
#安装git
yum -y install git
linux 机器
cd /opt/hkdata
1.配置环境
git config --global user.name "hk" git config --global user.email "[email protected]"
2.获取目标仓库
git clone git@node139:hk/user.git
进入项目并创建 测试文件
cd user
touch README.md
添加文件
git add README.md
注释
git commit -m "add README"
提交
git push -u origin master
Q13:jdlog Git 初始化
jdlog Git 初始化
#dlog_git_init.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "Usage: `basename $0` directory"
exit 1
fi
dir="$1"
mkdir ${dir}
cd ${dir}
git init
git remote remove ${dir}
git remote add -f ${dir} http://realease:[email protected]:81/idream/yanfa/OperationForum/dlog.git
git config core.sparsecheckout true
echo "${dir}" >> .git/info/sparse-checkout
cat .git/info/sparse-checkout
git pull origin master
#tar
Q14:git 提取部分文件夹目录
1)git 地址
http://bkgitlab.pan.cn/ledou00/ldcomm.git
2)目录
3)获取 conf 目录
注意:如果账号密码中带 @ ,需要进行转换成 %40符号
git remote add -f origin http://'[email protected]':'ledou@2019'@bkgitlab.pan.cn/ledou00/ldcomm.git
改成
git remote add -f origin http://shiye.meng%40idream.com:ledou%[email protected]/ledou00/ldcomm.git
4)配置 #开启sparse clone
git config core.sparsecheckout true
5) #设置需要pull的目录,*表示所有,!表示匹配相反的
echo "conf" >> .git/info/sparse-checkout
6)查看
cat .git/info/sparse-checkout
7)拉取
git pull origin master
#GIT只拉取项目中的某个目录