Git笔记

一些基本命令

#查看本地仓库状态
git status

#查看本地分支列表
git branch --list

#查看本地和远程所有分支
git branch -a

#创建本地分支
git checkout -b localbranch

#删除本地分支
git branch -d branchname
git branch -D branchname   --强制删除

#创建远程分支,将本地develop-local推送到远程develop-remote分支上
git push origin develop-local:develop-remote

#链接中央仓库
git branch --set-upstream-to=origin/0.1-beta 0.1-beta

gitlab新建一个空仓库之后,上传本地代码到仓库

Create a new repository

git clone http://xxxx/xx/xxx.git
cd weather-gather
touch README.md
git add README.md
git commit -m "add README"
git push -u origin develop

Push an existing folder

cd existing_folder
git init
git remote add origin http://xxxx/xx/xxx.git
git add .
git commit -m "Initial commit"
git push -u origin develop

Push an existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://xxxx/xx/xxx.git
git push -u origin --all
git push -u origin --tags

Git fork后如何同步源仓库更新

原文:http://www.cnblogs.com/leisurelylicht/p/Git-fork-hou-ru-he-tong-bu-yuan-cang-ku-geng-xin.html

1. 设置源仓库的远程地址
>> git remote add [新地址名称] [源仓库远程地址]
>> git remote add upstream https://github.com/leisurelicht/wtfpython-cn
 
2. 同步fork
>> git fetch [新地址名称]
>> git fetch upstream
 
3. 本地切换到想要更新的分支上
>> git checkout [branch]
>> git checkout develop
 
4. 把源仓库的远程分支合并到本地
>> git merge [新地址名称/分支]
>> git merge upstream/develop
 
5. 更新到自己的远程库上
>> git push origin develop

git关联本地仓库与远程仓库

#查看本地关联的远程仓库
git remote -v

# 设置远程仓库地址
git remote add origin http://xxx.git

# 拉取远端仓库
git pull origin master --allow-unrelated-histories        

# 将本地分支与远程仓库master分支关联
git branch --set-upstream-to=origin/master master

git修改关联的远程仓库

方法一 通过命令直接修改远程地址
进入git_test根目录
git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote set-url origin http://192.168.100.235:9797/john/git_test.git

方法二 通过命令先删除再添加远程仓库
进入git_test根目录
git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote rm origin
git remote add origin http://192.168.100.235:9797/john/git_test.git

方法三 直接修改配置文件
进入git_test/.git
vim config 

[core] 
repositoryformatversion = 0 
filemode = true 
logallrefupdates = true 
precomposeunicode = true 
[remote "origin"] 
url = http://192.168.100.235:9797/shimanqiang/assistant.git 
fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
remote = origin 
merge = refs/heads/master

修改 [remote “origin”]下面的url即可

如果修改远程关联的仓库后,需要推送代码,可以执行

git push -u origin --all
或
git push -u origin --tags

查看关联的远程仓库

git remote -v

Git :fatal: refusing to merge unrelated histories解决

git pull origin master --allow-unrelated-histories

Git合并分支

git checkout master  //切换到master分支
git merge hotfix  //将hotfix分支上的修改合并到master分支上

git修改了本地内容 如何恢复

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
 
git clean -df #返回到某个节点
git clean 参数
    -n 显示 将要 删除的 文件 和  目录
    -f 删除 文件
    -df 删除 文件 和 目录

git清除未加入版本控制的文件

git checkout . && git clean -xdf

提交日志规范

feature: 功能添加
bugfix: bug修复
change: 调整,比如配置,某些方法替换等
optimize: 优化过程
doc: 文档变更
refactor: 重构,功能不变
tests: 测试代码的调整
merge:分支合并
delete:分支删除

假如既添加了功能又优化了过程
Feature(optimize): 添加了××××功能;同时优化了××××功能。

.gitignore

# maven ignore
target/
*.jar
!.mvn/wrapper/*
*.war
*.zip
*.tar
*.tar.gz

# eclipse ignore
.settings/
.project
.classpath


# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db
*.orig

# idea ignore
.idea/
*.ipr
*.iws
.mymetadata
.checkstyle
.classpath
.project
.class
.war
.zip
.rar
*.iml
.settings/*
/indexes/*
/target/*
/src/main/webapp/WEB-INF/classes/*
/src/main/webapp/userfiles/*
/target/
# *.properties

常见问题

Git解决Filename too long的问题

git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,为此踩了个坑。

解决方式是:

git config --global core.longpaths true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值