git 学习笔记

Git Bash界面的美化(Git Bash界面的美化(一看必会)_git bash美化-CSDN博客

简单来说就是,在 git bash 界面,用cd ~找到git安装的根目录,在根目录下创建.minttyrc文件,文件内填上内容即可

···

Font=Consolas
FontHeight=14

ForegroundColour=131,148,150
BackgroundColour=0,43,54
CursorColour=220,50,47

Black=7,54,66
BoldBlack=0,43,54
Red=220,50,47
BoldRed=203,75,22
Green=133,153,0
BoldGreen=88,110,117
Yellow=181,137,0
BoldYellow=101,123,131
Blue=38,139,210
BoldBlue=131,148,150
Magenta=211,54,130
BoldMagenta=108,113,196
Cyan=42,161,152
BoldCyan=147,161,161
White=238,232,213
BoldWhite=253,246,227
BoldAsFont=-1
FontSmoothing=full
FontWeight=700
FontIsBold=yes
Locale=C
Charset=UTF-8

···

一、git常用命令
1.工程准备 git init [项目名称]
  工程克隆 git clone [URL]
  如果有大量二进制文件则使用 git lfs clone [URL]
  克隆仓库,获取所有分支,并立即切换到指定的分支 git clone -b [分支名] [URL]
  克隆仓库并仅获取一个分支 git clone -b [分支名] --single-branch [URL]

2.新增/删除/移动文件到暂存区 git add/git rm/git mv
  新增所有未被管理的文件 git add .

3.查看工作区的修改内容 git diff [分支名] [分支名]
  查看工作区文件状态 git status

4.提交更改的文件 git commit [文件名]
  提交所有文件 git commit -am "添加描述"
  修改描述信息 git commit --amend
  撤销本次commit git reset --soft HEAD~1

5.查看日志 git log --name-status
  查看最近几个节点的日志 git log -[数字]

6.推送远端仓库 git push origin [分支名]

7.列出本地分支 git branch
               -r 查看远端的分支
               -a 查看本地和远端所有的分支
  新建分支 git branch 新建分支后不会切换到新分支
           git checkout -b 新建分支后自动切换到新分支
  删除分支 git branch -d [分支名] 不能删除当前分支,只能删除本地的其他分支
  切换分支 git checkout [分支名]
  更新分支 自动与本地分支进行合并 git pull origin [分支名]
           不会影响本地分支内容 git fetch origin [分支名]
  合并分支 从指定分支节点合并到当前分支 git merge [分支名]
           用于以分支A为基线,合并到分支B git rebase [分支A] [分支B]
           后者一般在MR上有冲突时使用
  撤销合并 git rebase --abort

8.强制回退到历史节点 git reset --hard [commit_id]
                     commit_id通过log查看
                     git reset --hard HEAD 强制回退到头节点
  回退本地所有修改而未提交的 git checkout .
  只修改回退某个文件 git checkout -- [文件名]
  回退工作区到某一个版本 git checkout [commit_id]

9.查看远端服务器名称 git remote
                     一般的服务器名称都是origin

10.查看操作记录 git reflog

11.设置默认的pull和push远端目录 git branch --set-upstream-to=origin/[分支名] [本地分支名]

12.将改动存储在本地,并将项目本次操作还原 git stash
   使用上一次暂存,并将这个暂存删除,使用该命令后,如果有冲突,终端会显示,
   如果有冲突需要先解决冲突(这就避免了冲突提交服务器,将冲突留在本地,然后解决)git stash pop
   使用某个暂存,但是不会删除这个暂存 git stash apply
   查看所有的暂存 git stash list
   清空所有的暂存 git stash clear
   删除某一个暂存,在中括号里面放置需要删除的暂存ID git stash drop [-q|--quiet] [<stash>]

   如果暂存不小心清空,结果里面有需要的代码,
   找出刚才删除的分支暂存里面的提交对象 git fsck --lost-found
   然后使用 git show 命令查看是否正确,如果正确使用git merge命令找回

二、【Codehub】如何从主库同步代码到个人fork出来的派生库
  例如:
  Codehub用户:l00179216 (账号名)
  fork项目地址:https://codehub-dg-g.huawei.com/l00179216/config.git
  主库项目地址:https://codehub-dg-g.huawei.com/iSource/config.git
  分支名:master

1.clone自己个人空间里的fork仓库到本地
  $ git clone https://codehub-dg-g.huawei.com/l00179216/config.git
  $ cd config

2.增加远程原始仓(主库仓)到本地(可以用 git remote -v 命令查看远程仓列表)
  $ git remote -v
        origin  https://codehub-dg-g.huawei.com/l00179216/config.git (fetch)
        origin  https://codehub-dg-g.huawei.com/l00179216/config.git (push)

  如果没有远程原始仓则需要增加:
  $ git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/HiTLS.git
    git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/HiTLS_Demo.git
    git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/secpits-protocol.git
    git remote add wxz ssh://git@szv-y.codehub.huawei.com:2222/w30016506/NCTL.git
    git remote add wxz ssh://git@szv-y.codehub.huawei.com:2222/w30016506/YED.git
    git remote add wxz ssh://git@szv-y.codehub.huawei.com:2222/w30016506/NCTL_moddef.git
    git remote add wxz ssh://git@szv-y.codehub.huawei.com:2222/w30016506/LiteOS_Test.git
    git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/HISTACK_NCTL.git
    git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/NCTL_test.git
    git remote add lb ssh://git@codehub-dg-y.huawei.com:2222/l00658273/NCTL.git
    git remote add wxz ssh://git@codehub-dg-y.huawei.com:2222/w30016506/NRTP.git

    git remote add hitls ssh://git@codehub-dg-y.huawei.com:2222/VPP/HiTLS.git
    git remote add wxz ssh://git@szv-y.codehub.huawei.com:2222/w30016506/NCTL_CYC.git

  查看确认远程仓列表:
  $ git remote -v
        origin  https://codehub-dg-g.huawei.com/l00179216/config.git (fetch)
        origin  https://codehub-dg-g.huawei.com/l00179216/config.git (push)
        main https://codehub-dg-g.huawei.com/iSource/config.git (fetch)
        main https://codehub-dg-g.huawei.com/iSource/config.git (push)

3.获取原始仓(主库仓)的branch分支最新代码到本地,合并两个版本的代码
  $ git pull main master

4.把合并后的最新代码同步到iSource自己个人空间里的fork仓上
  $ git push origin master

5.删除远程仓库
  $ git remote rm wxz

三、解决冲突
方法1:
回到修改代码之前:git reset --soft HEAD~1
保存修改的代码:git stash
拉下主干的代码:git pull origin master
弹出保存的代码,修改冲突:git stash pop
提交修改:git commit -am "feat: 当成第一次提交"
强制推送到远端:git push -f xxx xxx

方法2:
切换到master分支:git checkout master
更新代码:git pull
合并分支:git rebase master 个人分支
解决冲突,合并修改:git add xxx/xxx
继续合并分支:git rebase --continue
强制推送到远端:git push -f xxx xxx

四、推送远端分支的操作
  如果需要合并主干代码,最好先回退当前版本,再拉主干代码,这样就不会有 Merge branch 'master' 这样的commit
  操作流程如下:
1.保存当前修改:git stash
  如果当前修改已commit,可以撤销本次commit:git reset --soft HEAD~1
  然后在使用 git stash 保存当前修改
2.回退大量的commit,来使本地与主干保持一致:git reset --hard HEAD~30
3.拉取主干代码:git pull origin master
  这样就不会有 Merge branch 'master' 的commit
4.然后将暂存里的修改放出: git stash pop
5.提交修改的文件:git commit -am ""
6.推送远端仓库:git push xxx [分支名]

五、git撤销本次操作
1.使用git reflog 查看近期的操作记录
2.使用git reset --hard [记录前面的数字] 回到该次操作

六、换行符
1.git 有个全局配置,在 %USERPROFILE%\.gitconfig 文件里面,可以指定如何处理文本文件的换行符

  [core]
    autocrlf = true

  有三个可选值:
  true
  false
  input

  在 Windows 系统上:
  true 表示在推送时转成 \n,在拉取时转成 \r\n。这样的设置让 Windows 的开发者能兼容很多的开发工具(比如早期的记事本,新的已经支持 \r\n 了),不至于遇到很多换行符问题。
  false 表示在推送时和拉取时都原样保留换行符。这样的设置在所有程序员都在同一个平台开发时很有用,git 完全不处理换行符,全部改由开发者自行解决。
  input 表示在推送时转成 \n,在拉取时原样保留换行符。注意到,这样的设置会让仓库里所有的换行符都变成 \n 不再有什么时候有 \r\n 了,所以对 Windows 平台的开发者并不友好。

2.命令:
  git config --global core.autocrlf true
  git config --global core.autocrlf input
  git config --global core.autocrlf false

3.如果已经产生了\r\n,merge时产生问题,可以设置:
  git config merge.renormalize true // merge时忽略行尾对比
  如果只需要执行一次merge可以是用命令:
  git merge -s recursive -X ignore-space-at-eol origin/master

4.可以设置crlf安全检查
  git config –-global core.safecrlf true // 禁止提交混合\n和\r\n的文件
  git config –-global core.safecrlf false // 允许提交
  git config –-global core.safecrlf warn // 提交时产生警告

七、tag
1.查看所有tag
git tag

2.给本地仓库分支打轻量级tag标签,括号内可选
git tag [tagName] (-m "tag info")

3.查看标签信息
git show [tagName]

4.推送单个tag到远端服务器
git push origin [tagname]

5.推送所有tag到远端服务器
git push --tags
或者 git push origin --tags

6.从当前tag拉分支
(1) 切换到具体tag
git checkout [tagName]
(2) 从tag拉取新分支
git branch [newBranchName] [tagName]
(3) 从tag拉取新分支
git checkout -b [newBranchName] [tagName]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值