git命令

316 阅读6分钟

注:第一次使用git提交代码前需要先设置用户名和邮箱 1、重置用户名和邮箱

git config --global user.name "username"
git config --global user.email "email"

设置完后可以使用git config --list查看即可
也可以单独查看
如: 查看用户名和邮箱地址:

git config user.name

git config user.email

2、清除缓存在git中的用户名和邮箱

git credential-manager uninstall

3、git init 初始化git本地仓库
你会发现文件下多了一个.git文件,说明仓库初始成功

4、git clone + 远程地址 克隆代码

5、git status 查看监听的状态 (可选)

6、git add . 全部添加到可操作的状态 (当前状态应该为绿色)

7、git commit -m 'first' 把监听的文件添加到本地仓库

8、git log 查看修改日志 (可选)

9、git remote add origin http http是你的运程仓库地址 需要你在 github 或者 码云上创建

10、git push -u origin master 提交到主分支上

11、git checkout -b 分支的名称 创建并切换到新分支

12、git branch 查看分支

13、git branch -r 查看远程分支

14、git checkout 分支名称 切换分支

15、git push -u origin 分支名称

16、git reset --hard commit_id 代码回退

17、合并

git merge 分支名称      要确保你是在master 分支上操作

18、删除

git branch -d 分支名称 删除本地分支

git branch -D 分支名称 强制删除本地分支

git push origin --delete 分支名称 删除远程分支

19、重命名

git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)

git push origin :远程修改前的分支名(删除远程分支)

git push origin 修改后的分支名:修改后的分支名(push 到远程分支)

git branch --set-upstream  修改后的分支名 origin/修改后的分支名(绑定远程分支)

20、代码拉取

git pull origin master 

21、强制删除远程分支

git push origin --delete 分支名称   

出现这个问题是因为gitee中的文件不在本地代码目录中,可以通过如下命令进行代码合并,之后在提交 代码合并

22、git merge 分支名称 本地合并

23、git push 提交到远程

24、git pull --rebase origin master 同步远程和本地的代码

25、切分支

git checkout -b v2.1.4-prod-fix-0825 origin/v2.1.4-prod-fix-0825
  • 这样就可以在创建新分支的同时与远程分支关联了,之后拉取代码和提交代码只需要git pullgit push

26、如果使用git checkout -b 分支名 origin/分支名 来切换远程分支失败,并报错

image.png

  1. 首先要确定你在远程仓库是否创建成功dev分支

  2. git branch -r

  3. 输入这个命令后查看远程所有的分支,检查你所需要下拉的分支是否已经在远程仓库底下。

  4. 如果分支已经创立好了,而执行还是同样的错误,那么就需要从git上重新拉取数据然后再创建远程分支到本地

  5. git pull

  6. git checkout -b 分支名 origin/分支名

  7. 如果你的远程分支仓库并未创建出来,那么你可以选择执行下面这条语句,在远程仓库创建你需要的分支

    git push origin 分支名
    

    创建完分支后再重复前面第一步操作检查是否创建成功,然后再重复第二步操作,从git上重新拉取数据然后再创建远程分支到本地,即可实现下拉远程新分支。

27、git fetch

www.cnblogs.com/runnerjack/…

  • git pull = git fetch + git merge

git fetch 命令:

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地

如果只想取回特定分支的更新,可以指定分支名:

$ git fetch <远程主机名> <分支名> //注意之间有空格

最常见的命令如取回origin 主机的master 分支:

$ git fetch origin master

取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:

$ git log -p FETCH_HEAD

28、解决git每次拉代码都需要输入账号密码的问题

-   在当前项目目录下执行`git config --global credential.helper store`命令(在~/.gitconfig目录下多出一个文件,用来记录你的密码和帐号)
-   再拉一次代码git pull
-   最后一次输入账号和密码,以后再拉取代码就不用输了

29、修改最后一次commit的注释信息

  • 1、git commit --amend
  • 2、按“i”键,进入编辑模式进行修改
  • 3、开始编辑修改
  • 4、修改完成后。按ESC键退出编辑模式
  • 5、按组合键 Shift + :
  • 6、输入wq,回车(保存退出)
  • 7、修改完成,继续git pull、git push

30、将修改暂存到本地

  • 1、保存数据在堆栈中
git stash save 'message(保存到堆栈中的数据的信息)'
  • 2、堆栈中的列表
git stash list
// 返回数据:
// stash@{0}: On master: stash1
// stash@{1}: On master: stash2
  • 3、从堆栈中将刚才保存的未提交的数据恢复出来
git stash pop stash@{0}
或
git stash apply stash@{0}

// pop和apply的区别
// git stash pop 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上,该命令将堆栈中最近保存的内容删除。
// git stash apply 将堆栈中的内容应用到当前目录,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。

31、git命令合并某一个分支的某个commit到目标分支

如:A分支上有a、b、c三个commit,B分支上有d、e、f三个commit,然后需要将A分支上的b合并到B分支上

  • 1、切换到要合并的目标分支上
git checkout B
  • 2、选择一个commit版本号,合并进当前分支

image.png

git cherry-pick xxxx(对应commit版本号)

// git cherry-pick xxxx xxxxx 选择多个commit进行合并
  • 3、推送到目标分支远程仓库
git push
  • 高级用法
//增加 -x 参数,表示保留原提交的作者信息进行提交。然后在生成的新提交信息中增加一行记录,表明这个新提交是从之前的那一个提交衍生出来的
git cherry-pick -x <commit_id>

32、git从某一个commit新建分支进行开发

    1. 使用git log查看历史commit信息
    1. 使用命令git checkout [commitid] -b [new-branch-name]来根据某个commit记录创建新分支

    git checkout xxxxxxxxxxxxx -b develop_1.0_new // 最新代码是xxxxxxxxxxxxx这个提交记录

    1. git push origin [new-branch-name]将新分支推送到远程仓库

33、本地项目git地址切换

    1. 检查当前地址:
    git remote -v
    
    1. 切换地址:
    git remote set-url origin xxx
    
    1. git pull、git push将原git仓库新提交的代码提交到现git仓库