Git 日常操作

非常实用的git命令。看到后面有彩蛋哈

一、新增一个项目

操作

1、进入GitHub网站上新建一个项目,如:「App」 项目

2、进入本地项目文件夹,初始化一个本地项目, 把这个目录变成git可以管理的仓库

git init

3、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件

git add .

4、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明

git commit -m '备注(自定义)'

5、关联到远程库

git remote add origin 你的远程库地址

6、获取远程库与本地同步合并(如果远程库「不为空」则必须做这一步,否则后面的提交会失败)

git pull --rebase origin master

7、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。

git push -u origin master

8、状态查询命令

git status

二、增 上传新建分支

新建名为v4的分支:

git checkout -b v4

git add .

git commit -m"备注(自定义)"

新建并提交到远程分支

git push --set-upstream origin v4

三、删(删除分支)

如果要删除名为 v2 的分支,必须切换到本地 git 的另一条分支上:

git checkout master

删除本地v2分支操作:

git branch -d v2

四、改重命名分支

git branch -m <old-branchname> <new-branch-name>

五、查

查询本地分支情况:

git branch

查询本地和远程分支情况:

git branch -a

六、放弃本地修改

1、未使用 git add 缓存代码时

git checkout -- filepathname 或者 git checkout .

2、已经使用了 git add 缓存了代码。

git reset HEAD filepathname

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

3、已经用 git commit 提交了代码。

使用git log 查看提交记录; git reset --hard HEAD^

七、回滚

回滚到指定的版本

git reset --hard e377f60e28c8b84158

强制提交

git push -f origin master

八、更换git远程仓库地址

通过命令直接修改远程仓库地址
方法1

git remote 查看所有远程仓库
git remote xxx 查看指定远程仓库地址
git remote set-url origin 你新的远程仓库地址

方法2

git remote rm origin && git remote add origin 你的新远程仓库地址

九、批量拉取全部远程分支

获取所有已追踪的远程分支更新

git remote update && git pull --all

获取全部远程分支并在本地创建

for remote in git branch -r; do git branch --track $remote; done

十、配置git命令 快速切换分支(解锁新姿势)

open ~/.gitconfig

[alias]
  find-branch = !sh -c \"git branch -a | grep -v remotes | grep $1 | head -n 1 | xargs git checkout\"

保存后,此时可以直接在命令行里输入分支名的前几个字符就行了 git find-branch ${shortcut}

# Git
alias gs='git status'
alias ga='git add .'
alias gp='git push'
alias gc='git commit'
alias gl='git pull & git remote prune origin'
alias gch='fn() { git branch -a | grep -v remotes | grep $1 | head -n 1 | xargs git checkout; }; fn'
alias gbdel='fn() { git branch -r -d origin/$1; git push origin :$1; git branch -d $1; }; fn'

十一、不提交当前分支的情况下切换到其它分支进行操作

工作中很常见的应用场景:假如现在的Bug你还没有解决,而上边又给你派了一个新的Bug,而这个Bug相比较现在正在苦思冥想的Bug比较容易解决。

你想先解决新的Bug,可是之前的Bug还没有解决完而不能提交。怎么办?

$ git checkout master #Please commit your changes or stash them before you switch branches

$ git stash # 将当前分支存起来,id为 8528ea2 s

$ git status # 本地无提交内容

# 在其他的分支改完起到之前分支 git checkout dev
$ git stash list # 命令去查看我们“存储”的列表

$ git stash apply &&  $ git stash drop # 命令恢复,但是恢复后,stash内容并不删除,使用drop删除
#  or

$ git stash pop  #恢复的同时把 stash 存储列表的内容也删了

 $ cat <filename>  #会发现之前的改动还存在,且执行 git status 就会继续显示该分支上有改动未提交
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐