Git 笔记

设置个人环境:
git config :
         配置文件位置:~/.gitconfig
 
配置用户名:
$ git config --global user.name "os-tanwn"
 
配置用户邮箱:
$ git config --global user.email os-tanwn@nowada.com
 
配置编辑工具:
$ git config --global core.editor vim
 
配置颜色:
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto


命令别名:
 git config --global alias.co checkout 
 git config --global alias.ci commit
 git config --global alias.br branch
 git config --global alias.st status 
 
 git config --global alias.lm  "log --no-merges --color --date=format:'%Y-%m-%d %H:%M:%S' --author='名字' --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Cblue %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit"


用git-config --list可以查看配置列表 
 
 
用git开始管理一个工程:
 
初始化一个git仓:
git init
 
把特定文件不纳入版本库管理:
Git过滤文件和文夹
第一步:添加".gitignore"文件
往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。
第二步:设置过滤条件
*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt *.o 过滤所有.o文件,这个最好不要使用.o,我们编译是经常会产生这种文件。
 
从远程服务器下载一个git工程:
git clone                            -----------------------------     git clone git@192.168.10.245:xxx.git xxx
 
从远程服务器下载一个git 分支工程:
git checkout -b <分支>---------------------git checkout .
 
 
 git status ---------------git status命令显示了哪些文件将被提交至git中(绿色),哪此文件将会被untracked(红色)。我们可以能过git add和git rm来管理这些文件。
 
把文件纳入git版本库的暂存区:
git add:
    git add –u  <path>  把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件
git add –A <path>   把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库, 包括untracted的文件
 
git rm 
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了
 
git mv
重命名文件 git mv old_name new_name
 
 
把文件从git暂存区移出来:
git reset HEAD <path>
git reset –hard  <历史指纹> 回滚到改历史指纹,同时会把git里面所有改动都被覆盖掉
git reset  –soft  <历史指纹> 相当于把之前的commit撤回到暂存区
 
 
git format-patch HEAD^ 生成一个补丁
git format-patch HEAD^^ 生成两个补丁(最多支持四个^)
git format-patch -<正整数i> 生成最近commit的i个补丁
git format-patch  –n 指纹   生成从指纹之前的n个补丁
 
git am <patch> 打上一个补丁
git am –abort 取消打补丁(一般是打补丁出错后执行的)
git am –resolved 解决了打补丁的冲突
 
git apply <patch> 直接应用修改
git apply –reject 应用修改,如果没打上,则生成差异的文件
git revert 撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交
 
git commit 把暂存区的仓库提交到版本管理库里面
git commit –amend 对上一次的提交做修改
 
git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记,
 
git branch -r 列出远程分支
 
git branch -a 列出本地分支和远程分支
 
git branch 创建一个新的本地分支,需要注意,此处只是创建分支,不进行分支切换
 
git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名
 
git branch -d | -D branchname 删除branchname分支
 
git branch -d -r branchname 删除远程branchname分支
 
git log --pretty=oneline   类似于tig
 
git log --author=os-tanwn  --since="14 days ago" --pretty=oneline 找这14以来作者是os-tanwn做的补丁,并且以简列形式显示
 
git log --committer=os-tanwn  提交者是os-tanwn的(提交者和作者意思是author是补丁的制作者,而committer是提交者,比如说我有提交远程服务器补丁的权限,但其他人没有,所有其他的补丁是通过我提交的,我就是committer,但author是其他人)
 
git log –stat显示被修改文件的修改统计信息,添加或删除了多少行
 
git log --grep=“gt9xx.c ” --pretty=oneline  找有gt9xx.c的补丁
 
 
git diff 
git diff <1> <2> -- <file>  比较指定两个指纹间某个文件的差别
git checkout  切换到分支或者把当前文件还原回版本库的文件
git checkout branch – filename  维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相   应的文件。注意会将暂存区和工作区中的filename文件直接覆盖
 
git reflog 查看最近的版本,通过找到id号后可以通过git reset –HARD <id>回到被reset的版本
 
服务器同步和提交到服务器
git pull           
git push         

远程服务器log:
git remote update    //同步远程版本的信息,但不会把更新内容放到工程里面,只改变了仓库
git log origin/$(分支名)  //可以查看服务器的最新更新记录

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


Git fetch origin master
git log -p master..origin/master
git merge origin/master

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

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并














  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值