git 操作

298 阅读3分钟

git结构图.jpg

git结构图1.jpg

git冲突.png

gitconfig配置文件缓存密码.png

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 缓存密码,不需要每次都输入

    1. 推荐 .gitconfig 文件添加这个设置
[credential]
    helper = store    
    1. 在git bash 中执行 git config --global credential.helper store

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

www.jianshu.com/p/6bcd08210…

git 网页上查看历史修改

blog.csdn.net/weixin_4307…

.gitignore 后面添加,让它生效

blog.csdn.net/weixin_4128…

git rm -r --cached . // 删除本地缓存
git add . // 添加要提交的文件
git commit -m 'update .gitignore' // 更新本地的缓存  

git pull request 我修改了你们的代码你们拉回去看看吧

git config 配置

git config配置 - fireporsche - 博客园 (cnblogs.com)

gitlens 比较不同的 commit 差异

www.codenong.com/42112526/

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