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