git
安装教程
(154条消息) Git 详细安装教程(详解 Git 安装过程的每一个步骤)_mukes的博客-CSDN博客_git安装
初始化一个本地仓库,代码push
上远程仓库
# 本地仓库初始化
git init
# 关联远程库
git remote add origin git@github.com:ZQN643401840/TrackPatrol.git
# 添加
git add .
# commit 并push
git commit -m "XX"
git push origin master
git
缓存密码,不需要每次都输入
-
- 推荐
.gitconfig
文件添加这个设置
- 推荐
[credential]
helper = store
-
- 在git bash 中执行
git config --global credential.helper store
- 在git bash 中执行
git
命令添加别名,比如子模块 pull
[alias]
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
spush = !git submodule foreach git push && git push
spull = !git submodule foreach git pull && git pull
scheckout = !git submodule foreach git checkout
sbranch = !git submodule foreach git branch
smerge = !git submodule foreach git merge
scommit = !git submodule foreach git commit
强制拉取并覆盖本地代码
git fetch --all
git reset --hard origin/master
git pull
git pull
相当于 git fetch
+ git merge
git
更新代码,以远程库为准(用远程覆盖),或以本地为准(或以本地覆盖)
- 前置:
git fetch
: 只是从远程获取最新版本到本地,不会merge(合并)$:git fetch origin master //从远程的origin的master主分支上获取最新版本到origin/master分支上 $:git log -p master..origin/master //比较本地的master分支和origin/master分支的区别 $:git merge origin/master //合并
- 如果
git pull
报错$ git pull error: Your local changes to the following files would be overwritten by merge: Plat/include/vos_msg_queue_id.h Please commit your changes or stash them before you merge. Aborting Updating e6971b6..1a8ce75
- 舍弃本地代码,远端版本覆盖本地版本(慎重)
$:git fetch --all $:git reset --hard origin/master $:git fetch
- 自己在本地开发代码,需要保留本地
参考下这篇文章:(154条消息) 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists)._L_smwy的博客-CSDN博客
回退版本
仓库上某历史版本是我想要的(最新的编译不过)
# 查看历史信息
$ git log origin
# 找到想要的版本号,并回退
$ git reset --hard 8460104174ac59f4abb4a4c74cb352f26e79f83f
====================================================
git 查看版本号以及回退操作
git 查看 commit id ,用于版本回退,穿越回去
git log
如果版本回退过了,重返未来,终极大招
git reflog
git 回退
git reset --hard [commit id]
工作区有修改,比较下工作区和版本库最新的之间的差别
git diff test/Release/test.txt
回到最近的暂存区状态,与最近的暂存区同步.或者叫回到最近的一次 "git add " 或 "git commit "
适用于修改还没 git add
到暂存区的情况
使用它必须确保能从暂存区或版本库上同步代码到工作区!!比如,先使用了git reset HEAD
(暂存区就清空了)
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
git checkout readme.txt
暂存区的东西不想要,不能把它 commit
到版本库时,丢弃暂存区
git reset HEAD test/Release/test.txt
git
删除本地文件,并且要告诉版本库
本地修改代码后,直接提交到仓库上
推荐如下用法,只有需要新的文件纳入管理时才用 git add .
git commit -am "1st commit"
我删除了一些本地文件,但我还是想要远程仓库上的文件
git fetch --all
git reset --hard origin/master
git pull
复习文章,廖雪峰:Bug分支 - 廖雪峰的官方网站 (liaoxuefeng.com)
多人开发,解决冲突:[多人协作 - 廖雪峰的官方网站 (liaoxuefeng.com)]
(www.liaoxuefeng.com/wiki/896043…)
gitlab 的 pull request
git 网页上查看历史修改
.gitignore 后面添加,让它生效
git rm -r --cached . // 删除本地缓存
git add . // 添加要提交的文件
git commit -m 'update .gitignore' // 更新本地的缓存
git pull request 我修改了你们的代码你们拉回去看看吧
- git pull request:www.zhihu.com/question/21…
- git merge request:www.jianshu.com/p/6bcd08210…
git config 配置
git config配置 - fireporsche - 博客园 (cnblogs.com)
gitlens 比较不同的 commit 差异
git fatal: could not read Username for ‘xxx.xxx.xxx‘: No such device or address 报错
打开.git文件夹下面的config配置文件
https://{username}:{password}@{git仓库地址}.git
[remote "origin"]
url = https://{username}:{password}@{git仓库地址}.git