git命令
新建分支
git checkout -b mybranch // 创建本地分支并切换到对应的本地分支(mybranch)
git checkout -b mybranch origin/RemoteBranch // 创建本地分支并检出远程的分支到本地
复制分支
git checkout -b new_branch old_branch
删除分支
删除本地分支
git branch -d localBranchName
切换分支
切换本地分支
git checkout B
查看分支
1、查看远程分支
git branch -a
2、查看本地分支
git branch
git branch -vv // -vv:显示更多信息。会将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有。
拉取、更新代码
git pull // 当本地分支代码未做修改,直接pull更新
git pull origin dev(远程分支名称) // 拉取远端分支的代码到本地
本地代码有修改:
方法1:
git checkout abranch // 切换到本地abranch分支
git pull
git checkout b_branch
git merger abranch // 把abranch分支合并到当前b_branch分支
方法2:
git reset --hard
查看本地修改
git diff // 可以查看当前没有add 的内容修改(不在缓冲区的文件变化)
git diff --cached // 查看已经add但没有commit 的改动(在缓冲区的文件变化)
git diff HEAD // 是上面两条命令的合并
提交到本地
设置提交模板
git config --global commit.template /home/song/work/song_complate
git commit 将修改提交到本地
git commit --amend 合并提交
git commit --amend
会合并当前提交和上一次的提交,如果当前提交有注释,则以当前的注释为合并后的提交的注释,若当前提交没有注释,则以上一次提交的注释作为合并后的提交的注释。
git commit --amend -m "xxxxx"
回退本地修改
1、已commit
使用git reset
回退
git log
git reset --hard [提交号] // 这个会清理掉本地修改的文件
git reset --hard HEAD^ // HEAD是指向当前版本的指针,HEAD^表示上个版本,HEAD^^表示上上个版本
2、未commit的本地文件
使用git checkout
撤销。撤销本地已修改但未提交的文件。注意: 已 add/ commit 的文件不适用个方法,用第一个方法处理。
git checkout . # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件
git checkout [filename] # 撤销对指定文件的修改,[filename]为文件名
提交代码到远端
git push origin mybranch:RemoteBranch // 推送本地的mybranch(冒号前面的)分支到远程origin的RemoteBranch(冒号后面的)分支(没有会自动创建)
强制更新远端代码
git push -f origin origin/dev_80:privatebuild/xxxx
记录
1、丢弃git工程下所有的修改,并更新到最新
git fetch --all && git reset --hard origin/dev_r6c20
git clean -df && git checkout . && git fetch --all && git reset --hard origin/privatebuild/xxxx
git clean -df
清除本地未提交修改的文件
git checkout .
清除本地仓已提交修改的问题
git fetch --all
拉取远端
git reset --hard origin/privatebuild/xxxx
更新本地代码到最新远端分支origin/privatebuild/xxxx
2、git pull冲突解决(与代码仓库的冲突)
error: Your local changes to the following files would be overwritten by merge:
备份有冲突的文件xxx.file
git checkout -f xxx.file
(丢弃了该文件的修改)
git pull
再比较恢复
7、创建分支并切换
git checkout -b privatebuild/{username} origin/privatebuild/{username}
12、强制更新远端分支
git push -f origin origin/dev_80:privatebuild/xxxx
10、打补丁及恢复
Git 生成技巧及流程
Git 打补丁-- patch 和 diff 的使用
打补丁:
- 创建git
cd src
git init
- 添加需要制作补丁的文件或目录,或者全部添加
git add *
或者git add *.c
- 提交原始文件
git commit -a -m 'init'
- 开始修改文件
- 提交修改文件
git add 修改的文件(添加到暂存区)
git commit -m "message"
- 创建补丁
创建补丁之一:创建某个修改的补丁命令:git format-patch [commit id] -n
#n指从sha1 id对应的commit开始算起n个提交
创建补丁之二:创建两个修改之间的补丁命令:git format-patch 【commit 老id】..【commit 新id】
,例如:git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8..89aebfcc73bdac8054be1a242598610d8ed5f3c8
- 恢复:
cd src
git apply --check ../0001-qt-vulnerability.patch 检查
git apply ../0001-qt-vulnerability.patch 打入
11、如果本地看不到远端新建的分支,需要在本地执行git fetch --all
从新安装git
1、安装git
2、配置git
2.1 配置全局用户名及邮箱
$ git config --global user.name "yourname"
$ git config --global user.email "yourmail@huawei.com"
Tips:必须要设置用户名及邮箱后才能使用Git,Git通过检测用户名和邮箱来跟踪进行commit的用户,在每次提交代码时这些信息将会附加在提交信息当中。
2.2 配置ssh key
参考: Git ssh 配置及使用 [https://blog.csdn.net/gdutxiaoxu/article/details/53573399]
(1)生产公钥
如果没有配置过,则需要使用以下命令:
$ ssh-keygen
该命令会在用户主目录(~)里生产.ssh文件夹,里面有id_rsa和id_rad.pub两个文件,这两个文件就是SSH Key的秘钥对。其中,id_rad是私钥,不能泄露,id_rsa.pub是公钥,可以告诉别人
(2)添加公钥
将公钥添加到codeclub等网站,就可以进行代码的下载和上传了。
git官方教程
git官方教程`
网友评论