git版本管理
注:新手可以先看 git基础使用章节, 因为使用频繁度,吧常用的命令放在了前边。
git常用操作
撤销所有的git add文件
提示使用 git reset HEAD
不添加
ssh key产生
# 产生ssh key
sudo apt-get install openssh-server openssh-client git
ssh-keygen -t rsa -C "baiyang0223@163.com"
cat ~/.ssh/id_rsa.pub
git本地配置
baiy@inno-NUC8i3BEH:pciutils-3.7.0$ cat ~/.gitignore
*.a
*.so
doc/*
a.out
*.S
*.i
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
tags
# My configurations:
db.ini
deploy_key_rsa
.cproject
.project
.settings
*.kdev*
cscope.*
baiyang_build.sh
#rootfs.cpio
image.ub
system.dtb
.vscode
kernel_fdt.its
baiy@inno-NUC8i3BEH:pciutils-3.7.0$ cat ~/.gitconfig
[core]
excludesfile = /home/baiy/.gitignore
editor = vim
[user]
name = baiyang
email = baiyang0223@163.com
[alias]
st = status
ci = commit
co = checkout
br = branch
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
[color]
ui = true
git查看文件修改
在Linux内核中,我们代码经常出现:
#include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
// 旧版本代码
#else
// 新版本代码
#endif
那么问题来了,如何知道某个特性在哪个版本引入的?文件发生了什么修改?
# 查看文件修改历史记录
git log --pretty=oneline [filename]
# git blame追溯一个指定文件的历史修改记录
git blame [filename]
# 图形界面查看某个文件修改历史记录
gitk [filename]
# tig工具*** 强烈推荐
注:网上各种图形界面,经过测试,只有tig和gitk是速度最快得。
gitk使用说明:gitk使用
git打包补丁
在使用中常遇到:整理当前版本与某个版本得修改,然后将补丁打上
方法1:打补丁,简单,但会丢失合并信息,不推荐
git diff sha1_1 sha1_2 > patch
patch -p1 < ./patch
方法2:cherry-pick
git checkout -b tag_xxx xxx # 根据tag创建分支
git cherry-pick sha1 # 当前分支合并一个提交
git cherry-pick A^..B # 将[A,B]之间得提交合并
git远程服务器同步
git如何将分支与远程分支关联
- 用 git checkout —track origin/branch_name 来在本地创建一个与branch_name同名分支跟踪远程分支。
- 用 git push —set-upstream origin branch_name 来在远程创建一个与本地branch_name同名的分支并跟踪;
pull操作
将远程指定分支 拉取到 本地指定分支上:
git pull origin <远程分支名>:<本地分支名>
将远程指定分支 拉取到 本地当前分支上:
git pull origin <远程分支名>
将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)
git pull origin
**
push操作
将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>:<远程分支名>
将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):
git push origin <本地分支名>
将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支)
git push origin
同样的,推荐使用第2种方式,git push origin <远程同名分支名>
git基础使用
1.官方文档
git 查看修改
git diff sha1 sha2 —name-only # 只查看某几个版本的文件变动
git 忽视文件权限
git config core.filemode false
修改提交日志
git commit —amend