常用git命令

828 阅读5分钟

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

配置用户

//查看当前配置
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仓库管理,保证个人学习项目与公司项目的分开管理.

初始化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 init
git config --local user.name ""
git config --local user.email ""
git add README.md
git add .
git commit -m "first commit"
git remote add origin $[gitUrl]
git push -u origin master

删除暂存区

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

查看远程仓库地址

git remote -v
//查看当前分支对应远程分支
git remote show origin

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请求