经常使用git命令

今天整理项目突然发现有几个git命令想不起来,因此从新整理了一下,算是个复习吧. 分支部分比较经常使用也比较重要.html

配置用户

//查看当前配置
git config --list
//配置帐号密码(全局)
git config --global user.name ""
git config --global user.email ""
//单独为某个项目仓库配置
git config --local user.name ""
git config --local user.email ""
复制代码

注: 对于不少程序员而言,咱们不只有公司的gitlab帐户作公司的业务,也会有本身我的的github帐户整理本身的学习代码。 咱们可使用ssh key的方式配置多帐户 Mac下配置多个Git帐户,可是git config --local ... 命令实际上也能为咱们简单配置单独的git仓库管理,保证我的学习项目与公司项目的分开管理.linux

初始化git

  • 不要在文件夹里初始化git,一个项目初始化一次,不要嵌套建立
git init 告诉git哪一个文件夹被git所管理
git status 查看git状态
git add ./-A 把文件从工做区放入暂存区
git commit -m”描述“ 添加到历史区
git commit -a -m ‘描述’ 添加并提交
git log 查看历史状态

//示例
------
git add README.md            将md文件提交
git commit -m “add md”    添加注释
git push origin locDev:dev  将本地分支代码推送到远程dev分支
git push origin dev               下次提交直接提交代码到远端dev
------

git diff 工做区和暂存区比较
git diff master/分支名 工做区和历史区比较
git diff --cached 暂存区和历史区比较

git checkout ./文件名 撤销 从暂存区中将工做区内容覆盖掉
git reset HEAD ./文件名 回退文件,将文件从暂存区回退到工做区
git reset --hard 版本号 回滚到某个版本

git reflog 查看全部版本
git reset HEAD^ 回到上个版本
复制代码

删除暂存区

git rm --cached <文件名> 从暂存区删除一个文件
git rm --cached . -r 删除暂存区的文件
复制代码

分支

git branch <branch name>  建立分支
git branch       查看本地分支     
git branch -r   查看远程分支    
git branch -a   查看全部分支 本地及远程的    
git branch -d <branch name>  删除本地分支 
git branch -vv 查看全部分支追踪关系    

git checkout -b <branch name> 建立并切换分支
git checkout <branch name>  切换分支
git checkout <file name>  将文件从暂存区拉回到工做区  
git checkout -b locDev origin/dev 从远程dev分支拉取代码建立本地locDev分支
git push --set-upstream origin <branch name> 新建远程分支
git push origin locDev:dev 新建分支法2,将本地locDev提交到远程dev分支,远程没有dev会自动建立    
git branch -d <branch name> 删除本地分支      
git branch -m <old_branch_name> <new_branch_name> 修改本地分支名字

git branch -u origin/master <branch name>  本地分支追踪远程master    
或
git branch --set-upstream-to origin/master <branch name>

git push origin --delete <branch name> 删除远程分支
或         
git push origin :<branch name>


复制代码

文件修改切换分支

  • 分支有更改不能直接切换,能够提交更改或暂存更改,暂存使用过渡区覆盖掉工做区
git stash 暂存文件
git stash pop 还原暂存的内容
复制代码

合并分支

//通常来说是低版本合并高版本,好比master基础上新建bugfix分支,
//bugfix分支开发完毕以后,切回master分支,git merge bugfix去合并
git merge 分支名 合并分支
复制代码

解决冲突

  • 遇到冲突时只能手动处理冲突,留下想要的结果

linux命令

rm -rf .git 删除一个目录
rm  a.txt 文件名 删除一个文件
mkdir git_project 建立目录
cd 路径名 切换目录
ls 显示文件(不显示隐藏文件)
ls -al 显示目录下全部文件
touch 1.txt 建立文件
cat 1.txt 查看文件
vi 1.txt 编辑文件,键盘I键插入变为可编辑模式,Esc保存,shift+:wq冒号保存
i 插入模式 esc退出编辑模式  :q!强制退出 :wq保存并退出
pwd print working directory 打印当前工做目录
echo ‘内容’>1.txt 写入内容到1.txt
echo ‘内容’>>1.txt 追加内容
复制代码

本地提交

  • README.md
  • 建立一个.gitigonre 配置文件 忽略提交的文件
  • git不会上传空文件夹,添加.gitkeep在空文件夹内

关联远程仓库

git romote add orgin 地址 添加到远程仓库
复制代码

删除关联

git remote add b 地址  添加了错误的关联,能够添加
git remote rm b 删除错误的关联 
复制代码

推送代码到远端

git push origin master
复制代码

拉取远端代码

  • pull = git fetch + git merge
git pull origin master
复制代码

gh-pages 分支来发布咱们的静态页

  • 在项目中建立一个gh-pages的分支
  • 将分支提到线上仓库上
  • 找到提供给你的网址,在git上settings - github pages 上能够查看到index.html静态网页
touch index.html
git checkout -b gh-pages
git add .
git commit -m "建立一个静态网页"
git push origin gh-pages //提交到gh-pages分支上
复制代码

issues问题

  • 能够提交对项目,本身的信息

更改别人代码

  • fork是在当前项目下克隆了一份,若是代码更新,不会随之更新

拉取本地

git clone 项目地址 项目别名
复制代码
  • 默认就是git仓库并且有origin地址,能够将代码提交到本身的仓库上
  • New pull Request , 推送到被克隆代码的原项目地址上
  • 只有fork的代码才能发送pull request请求
相关文章
相关标签/搜索