git常用命令

1、初始化和关联远程仓库

初始化git仓库文件夹: git init

本地关联远程仓库:git remote add origin https://xxx.git

查看是否关联本地仓库: git remote -v 

 2、拉去和提交代码

查看本地代码修改的状态: git status

添加所有修改的文件到缓存中: git add .

提交代码:git commit -m "修改内容"

将修改代码推送到远程分支:git push 或者 git push origin 分支名。(第一次推代码:git push -u origin 分支名)

拉去分支代码:git pull 或者 git pull origin 分支名

克隆远程代码:git clone http://xxx.git

切换已存在的分支:git checkout 分支名

3、新建分支或者切换分支

新建并切换到新建分支上: git checkout -b 新的分支名

将新建的分支推送到远程:git push origin 新的分支名

查看远程的分支有哪些:git branch -a

查看本地的分支有哪些: git branch -v

切换分支: git checkout 分支名

4、根据提交记录生成新的分支

先执行git log命令,查看提交的时间节点所对应的commitID(复制commit后面的一长串)

然后创建并切换到新生成的分支:git checkout commitID(复制commit后面的一长串) 新分支名称

最后将新生成的分支推送到远程:git push origin 新分支名

 5、合并分支,比如将代码合并的master

先切换到master分支:git checkout master

拉去更新最新master代码:git pull origin master

查看所有分支都已经pull下来了:git branch -a

将dev分支代码合并到master上:

  1、根据commitId合并:git cherry -pick commitId

  2、根据名称合并:git merge 分支名称

查看合并状态:git status

有冲突解决冲突后,将代码提交远端master上,现在远端master就是我们合并后的最新的代码

6、暂存(如果是多人开发,拉代码前一定要将本地的修改先暂存起来再去拉,避免本地和远端代码冲突而拉取失败问题)

先暂存本地修改的内容:git stash save '暂存的标记名称'

查看暂存记录:git stash list

注:暂存记录里每条数据前面会有stash@{index}编号,比如位于第一条数据就是stash@{0}

取出暂存里对应编号的数据,取出后会自动删除本条记录:git stash pop stash@{index}

取出暂存里对应编号的数据,取出后仍然保存当前记录:git stash apply stash@{index}

删除暂存里对应编号的数据:git stash drop stash@{index}

删除暂存里所有数据:git stash clear

列子:

  1.拉取远程代码提示有文件冲突。

  2.暂存本地代码:git stash sava "暂fe存"

  3.查看暂存本地列表: git stash list

  4.在拉取去远程master分支代码,现在不会冲突,因为已经将本地的代码暂存起来,本地只有远程的代码

  5.取出暂存的代码:git stash pop stash@{index}  它会将本地暂存的代码取出并且合并到master分支上,现在我们本地的文件就会有冲突,我们只需要将冲突文件修改解决即可

  6.将本地的代码提交到远程:git add. 、git commit -m "提交代码"、git push 

  完美解决!!!!

7、查看修改和还原:

查看本地某一个文件的修改:git diff fileName

注:fileName是文件夹名+文件名+后缀名,如:src/ui/home.dart,可以执行git status查看,复制modified:后面的一整串

还原本地某一个修改文件:git checkout fileName

还原本地所有修改文件:git reset --hard

注:git checkout fileName只适用于还没执行过git add命令

如果已执行过git add还未执行git commit命令,必须先执行撤回git add命令:

撤回某一个add过的文件:git reset HEAD fileName,

撤回所有add过的文件:git reset HEAD

如果已执行过git commit命令提交代码,则执行撤回到上一次commit状态的命令:git revert commit_id

注:commit_id需先执行git log查看commit记录,就能找到对应的commit_id(commit后面一长串)

查看当前分支的所有修改日志:git log

查看远端某个文件最近一次的修改内容:

git log -p fileName

git show commit_id

注:fileName是文件夹名+文件名+后缀名,如:src/ui/home.dart,可以执行git status查看,复制modified:后面的一整串

查看某个文件最近的提交记录:git log --pretty=oneline fileName

8、查看分支和修改分支

查看当前分支:git branch 或者git branch -vv

查看远端所有分支:git branch -a

设置新分支名:git branch -m oldname newname

注:oldname老分支名,newname新分支名

删除远端被修改的分支:git push --delete origin oldname

推送新修改的分支:git push origin newname

注:光删除远程分支是不行的,因为本地分支仍然存在,所以还要执行本地分支删除操作

如删除名为dev_new的本地分支:git branch -D dev_new

9、查看远程仓库地址

查看当前项目所在的git地址:git remote -v

10、版本回退

回退到上一个版本:git reset –hard HEAD ^ 

注:HEAD后面的这个 ^ 是指回退到上一个版本,如果要回退到上上个版本则在HEAD后面加^^,回退版本多的话也可以直接指定,如:

回退到第10个版本:git reset –hard HEAD~10

原文地址:https://www.cnblogs.com/zhuxibo/p/14307988.html