标签:account name window pre gui 工作区 排序 merge err
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 的读音为 / g?t/。
Github 是一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 gitHub。
Windows 下配置文件位置:C:\Users\Administrator\.gitconfig
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global core.quotepath false
,(Git Bash 可能要:Git Bash 窗口右键 ->Options->Text->Locale 设置 zh_CN,Character set 设置 UTF-8
)git config --global gui.encoding utf-8
git config core.filemode false
git config core.ignorecase false
cat .git/config
git init
git add filename
git commit -m "describe"
git status
暂存区和工作区:git diff filename
版本库和暂存区:git diff --cached filename
版本库和版本库:git diff HEAD^ HEAD filename
git log
git log --pretty=oneline
git log --reflog
git log --reverse
(git-log(1) Manual Page 的 Commit Ordering 下面)git reflog
git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard HEAD~N
git reset --hard 版本号
git reflog
或通过以下命令查看未来版本号(貌似所有提交过的版本全部列出了):git log --reflog
git reset --hard 版本号
暂存区 -> 工作区:git checkout -- filename
版本库 -> 暂存区:git reset HEAD filename
git rm filename [--cached]
cached: 本地不删除
(从版本控制中移除。如:将先添加到 git 然后写在 gitignore 中的文件,或写在 gitignore 中用 git add -f 强制添加到 git 的文件,从 git 中删除。)
https://git-scm.com/docs/git-show
git show 版本号 [--stat]
git branch dev
git branch -b dev
git checkout dev
git branch
git merge dev
git branch -d dev
git push --delete origin devel
https://git-scm.com/docs/git-rebase
git tag
git tag -l v1.*
git tag v1.0
git tag -a v1.0 -m ‘first version‘
git tag -a v1.0 版本号
git tag -d v1.0
git push origin [tagname]
git push [origin] --tags
ssh-keygen -t rsa -C "youremail@example.com"
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): 指定 rsa 的位置和名字(默认是当前目录)
登录 GitHub 创建仓库
git remote add origin git@github.com:path/repo-name.git
git push [-u] [origin master]
git push origin local\_branch:remote\_branch
GitHub 上为最新版本,本仓库是旧版本可以用 pull 将本地更新到最新版本
git pull [origin remote\_branch:local\_branch]
pull = fetch(下载) + merge(合并)
git clone git@github.com:path/repo-name.git
git clone --depth 1 git@github.com:path/repo-name.git
git fetch git@github.com:path/repo-name.git <sha1-of-commit-of-interest>
git reset --hard FETCH_HEAD
git fsck --lost-found
eg:A 更新到 B,B 回退到 A,A 又更新到 C。丢失的 B 用上面的命令找回。(版本回退后在旧版本提交产生的问题)
语法:
eg:忽略根目录下 upload 文件夹,除了 2015 文件夹
#最前面不加"/"则所有文件夹下的upload都会忽略
#不加"*"则将upload忽略而不是upload下的文件忽略,后面的!/upload/2015/无法生效
/upload/*
#忽略/upload/2015/文件夹
!/upload/2015/
eg:忽略 / web/upload / 下的所有文件和文件夹,除了 / web/upload/img/20170301 / 文件夹
/web/upload/*
!/web/upload/img/
!/web/upload/img/20170301/
全局配置(~/.gitconfig)
姓名:git config --global user.name "Your Name"
邮箱:git config --global user.email"email@example.com"
ssh-keygen -t rsa -C "youremail@example.com"
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): /c/Users/Administrator/.ssh/name_rsa
单个仓库配置(仓库 /.git/config)
进入某仓库
姓名:git config user.name "Your Name"
邮箱:git config user.email"email@example.com"
ssh-keygen -t rsa -C "youremail@example.com"
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): /c/Users/Administrator/.ssh/name_rsa
这里使用哪个用户上传就把哪个用户放上面(不知道为什么只能用第一个)
#global_key
Host github.com
HostName github.com
IdentityFile ~/.ssh/name_rsa1
PreferredAuthentications publickey
User your_name1
#xxx_key
Host github.com
HostName github.com
IdentityFile ~/.ssh/name_rsa2
PreferredAuthentications publickey
User your_name2
# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径
建立:
在 U 盘作为仓库的目录(eg:I:\repo\test_project)执行git --bare init --shared
bare:只有. git 中的文件,且. git 中的文件都放在当前目录下(git 服务器)
使用:
直接使用建立时的路径访问就行
eg:git clone I:\repo\test_project
标签:account name window pre gui 工作区 排序 merge err
原文地址:https://www.cnblogs.com/jffun-blog/p/10217635.html